第03讲-面向对象设计原则_设计实验
2014-04-29 09:49
260 查看
设计实验
有 3 个开关:a
b c
有 3 个电灯:x y z
要求实现:
a 能控制 x
b 能控制 x, y
c 能 x
注意:1个灯泡可以被多个开关控制;1个开关可以同时控制多个灯泡
所谓“控制”:当开关操作时,当前灯泡的状态发生翻转。亮->灭 或 灭->亮
import java.util.*;
class Light
{
private boolean state; // 灯的状态。true: 亮
public String toString()
{
if(state)
return "亮";
else
return "灭";
}
// 翻转状态
public void change()
{
state = !state;
}
}
class Switch
{
//Light[] a = ...
Vector v = new Vector();
public void addLight(Light x)
{
v.add(x);
}
// 按了一下开关
public void press()
{
for(int i=0; i<v.size(); i++)
{
Light p = (Light)v.get(i);
p.change(); // 反转电灯的当前状态
}
}
}
public class MyTest
{
private static void show_light(Light x, Light y, Light z)
{
System.out.println(x + "," + y + "," + z);
System.out.println("-----------------------");
}
public static void main(String[] args)
{
Light x = new Light();
Light y = new Light();
Light z = new Light();
Switch a = new Switch();
Switch b = new Switch();
Switch c = new Switch();
a.addLight(x);
b.addLight(x);
b.addLight(y);
c.addLight(x);
show_light(x, y, z);
a.press();
show_light(x, y, z);
b.press();
show_light(x, y, z);
c.press();
show_light(x, y, z);
}
}
有 3 个开关:a
b c
有 3 个电灯:x y z
要求实现:
a 能控制 x
b 能控制 x, y
c 能 x
注意:1个灯泡可以被多个开关控制;1个开关可以同时控制多个灯泡
所谓“控制”:当开关操作时,当前灯泡的状态发生翻转。亮->灭 或 灭->亮
import java.util.*;
class Light
{
private boolean state; // 灯的状态。true: 亮
public String toString()
{
if(state)
return "亮";
else
return "灭";
}
// 翻转状态
public void change()
{
state = !state;
}
}
class Switch
{
//Light[] a = ...
Vector v = new Vector();
public void addLight(Light x)
{
v.add(x);
}
// 按了一下开关
public void press()
{
for(int i=0; i<v.size(); i++)
{
Light p = (Light)v.get(i);
p.change(); // 反转电灯的当前状态
}
}
}
public class MyTest
{
private static void show_light(Light x, Light y, Light z)
{
System.out.println(x + "," + y + "," + z);
System.out.println("-----------------------");
}
public static void main(String[] args)
{
Light x = new Light();
Light y = new Light();
Light z = new Light();
Switch a = new Switch();
Switch b = new Switch();
Switch c = new Switch();
a.addLight(x);
b.addLight(x);
b.addLight(y);
c.addLight(x);
show_light(x, y, z);
a.press();
show_light(x, y, z);
b.press();
show_light(x, y, z);
c.press();
show_light(x, y, z);
}
}
相关文章推荐
- C#设计模式前奏-面向对象设计原则
- C#面向对象设计模式纵横谈(1):面向对象设计模式与原则
- 设计模式(1)之面向对象设计原则
- (Boolan)C++设计模式 <一> ——设计模式简介以及面向对象设计原则
- VC++ 面向对象设计的6个设计原则和23个经典设计模式
- 面向对象设计原则及设计模式
- 可扩展架构设计原则与面向对象设计原则脑图
- 面向对象设计原则 面向对象设计原则之依赖倒转原则
- 设计模式学习笔记——面向对象设计原则
- 设计模式学习笔记——面向对象设计原则
- 面向对象设计原则---【摘自易学设计模式】
- 设计模式——面向对象设计的原则(二)
- 笔记:设计模式(1)-面向对象设计模式与原则
- 03-04面向对象设计原则_设计实验
- 记录一下----关于设计模式和面向对象设计原则
- C#面向对象设计模式纵横谈(1):面向对象设计模式与原则
- 【设计模式】一些通用的面向对象设计原则简介
- 面向对象设计领域的OCP原则 收藏 面向对象设计领域的OCP原则
- 设计模式学习笔记(一)——面向对象设计模式与原则
- C++ 设计模式2 (面向对象设计原则)