| 作者 |
内容 |
| talkchen |
学习设计模式的一点心得(不要客气噢,请多多赐教)
1、每一种模式都是针对一定的问题的。没有一种模式是万能的。
2、每一个模式的设计都是为了解决一个“变化”的问题,对于变化的部分,运用OO的继承,和组合机制来作为支撑,通常会在变化的部分增加一个抽象,充分运用OO的多态性。唉,我在说什么东西噢,我的表达能力太差了,还是举个例子吧。抽象工厂模式。这个模式是为了解决如何来获取一系列的相关的类的实例。其变化点在于“系列”,不同时候,也许需要不同的系列。怎么解决这个问题呢?
A)将各种的Concrete类进行分类,形成各种抽象的类。例如窗口吧,motif
widow,和windows window 两个类,将从他们中间抽象出AbstractWindow。
B)通过工厂模式将各个系列的类组织在一起,形成ConcreteFactory。同时对工厂进行抽象--AbstractFactory。
C)对于客户端而言,我就只是需要和AbstractFactory,Abstract
Window来打交道;同时,在运行时刻,也很容易变化各种ConcreteFactory来返回各种Concrete类的实例。
3、下面一点观点,是从别的地方看来的。
3.1、对于继承的使用
如果我们会使用OO的多态性,则使用继承,否则不要使用。尤其是仅仅使用继承来扩充功能,在这种情况下,应该多多的使用组合。
3.2、抽象类和接口
在java里面有抽象类和接口两个概念。对于他们的使用。唉我确实是不知道如何来区分。
3.3、一个好的设计是,close它的modification,open它的extends
|
| 01/12/27 12:43 |
酷帖! 臭帖! 回复 |
酷帖评价: 臭帖评价: |
| 返回页首 |
|
| lang_han |
回复:
学习设计模式的一点心得(不要客气噢,请多多赐教)
在java里面有抽象类和接口两个概念。对于他们的使用。唉我确实是不知道如何来区分。
类和接口的主要区别在类是建立在特定的属性上的一些操作和消息响应,接口则完全相反,它的操作更加独立些,并不是基于特定的属性来完成的。
因此则两者的使用区别主要表现在:
抽象类主要用于特定属性上操作或者消息响应的扩展。接口则完全基于某些共有操作扩展。 |
| 01/12/27 15:17 |
酷帖! 臭帖! 回复 |
酷帖评价: 臭帖评价: |
| 返回页首 |
|
| lzhihua |
回复:
学习设计模式的一点心得(不要客气噢,请多多赐教)
1。我觉得《设计模式》通篇都在讲一句话“面向接口编程”。
2。对继承与委托的使用,我认为继承是委托的子集,但子类继承了父类的接口(public
方法)和父类的接口的实现,子类要确保这些接口有意义。
3。关于抽象类和接口,并无太多差别。只是JAVA
对类不能多重继承。就像Thread抽象类 和Runnable接口的区别。不必过于计较。 |
| 01/12/27 16:57 |
酷帖! 臭帖! 回复 |
酷帖评价: 臭帖评价: |
| 返回页首 |