交通灯管理系统
面向对象设计思想:
例题:
1, 两块石头磨成一把石刀,石刀可以砍树,砍成木材,木材做成椅子
用面向对象的思想模拟
如下:
对象有:
石头:Stone
石刀:StoneKnife
木材:Wood
椅子:Chair
两块石头磨成一把刀,则就是一个工厂类,传入两块石头做参数,返回一把石刀
StoneKnifeFactory
木材做成椅子也是一个工厂类,将木材作为参数,返回一把椅子
ChairFactory
代码如下:
StoneKnife
public class StoneKnife {
private Stone s1;
private Stone s2;
// 石刀由两块石头磨成
public StoneKnife(Stone s1, Stone s2) {
this.s1 = s1;
this.s2 = s2;
}
// 石刀有砍树的功能
public Wood cutTree() {
return new Wood();
}
}
Chair
public class Chair {
// 椅子由木材做成
private Wood w;
public Chair(Wood w) {
this.w = w;
}
}
StoneKnifeFactory
public class StoneKnifeFactory {
public static StoneKnife creatStoneKnife(Stone s1,Stone s2){
return new StoneKnife(s1,s2);
}
}
ChairFactory
public class ChairFactory {
public static Chair creatChair(Wood w){
return new Chair(w);
}
}
模拟流程:
public class TestDemo {
public static void main(String[] args) {
// 创建两块石头
Stone s1 = new Stone();
Stone s2 = new Stone();
// 将两块石头磨成一把石刀
StoneKnife sk = StoneKnifeFactory.creatStoneKnife(s1, s2);
// 砍一块木材
Wood w = sk.cutT