黑马程序员—交通灯系统

------- android培训java培训、期待与您交流! ----------

1,张老师在一开始为了提高同学们的面向对象的设计思维能力,便引出了两个例子:

例一:两块石头磨成一把石刀,石刀可以砍树,砍成木材,木材做成椅子

张老师的是这样设计的:

首先有这样几个类

Stone//石头

StoneKnife//石刀,这个类里面有一个public Material cut(Tree tree)方法

Material//材料

Tree//树

Chair//椅子

然后张老师想到石头磨出刀后石头自己就应该没了,材料做成椅子后也应该没了,张老师觉得这样的思想如果要设计到对象所对应的类里面就比较难以实现,所以就又设计了两个工厂类

KnifeFactory//这个类里面有个createKnife(Stone stone1,Stone stone2)方法

ChairFactory//这个类里面有个makeChair(Material material)方法

个人觉得张老师的设计这两个工厂类是没有必要的,类多了就过于复杂了,况且他这样设计似乎也没有达到让对象自己把自己变没了的目的,下面我给出我的设计,个人觉得比张老师的要好点,也许我的还没有他设计的好,仅供交流,呵呵……

例二:球从一根绳子的一端移动到了另一端

张老师是这样设计 的

我是这样设计的

我觉得我和张老师的不同就在于他把绳子设计在了一个二维空间里,而我则是把绳子设计在了一个一维空间里

下面是我自己模拟的这个交通灯系统

------- android培训java培训、期待与您交流! ----------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值