posts - 124,  comments - 29,  trackbacks - 0

1:何为设计模式?
设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结可以被反复使用而且可靠性高。设计模式可以让你的程序可维护性高可扩展性好

2:为什么要学习设计模式?
       复用解决方案——通过服用已有的设计模式,为自己的问题找到了更高的起点,避免了绕弯路。不必再为普遍,重复的问题重新设计解决方案。
       建立通用的术语——交流与协作都需要一个共同的词汇基础,一个对问题共同的观点。设计模式在项目的分析和设计阶段提供了一个通用的参考点
       更高层次的视角——这样的视角将你从“过早处理细节”的“暴政”中解放出来。

模式本身就是对如何创建优良面向对象设计策略的实现:
    1.针对接口编程
    2.优先使用对象组合,而不是类继承
    3.发现并封装变化点

abstract factory、adapter、strategy体现了针对接口编程
composite、bridge体现了优先使用组合而不是继承等。

 深入到具体模式的讨论,记录一些需要注意的问题:
1.Adapter与Facade模式的区别
它们都是包装器,但是两者也有细微的区别:
.两个模式中,我们都有已经存在的类(或者说系统)
.Facade模式中,我们无需针对接口编程;而Adapter模式我们必须针对接口编程
.Adapter模式通常是为了保持多态,而Facade模式对此不感兴趣
.动机不同,Facade模式是为了简化接口,而Adapter模式是针对一个现存的接口编程
结论:Facade模式简化接口,而Adapter模式将接口转换成另一个现有的接口

2.Bridge模式的理解
Bridge模式的意图是将抽象部分与它的实现部分分离,使它们可以独立的变化。这里的关键点是需要理解“实现部分”,如果把“实现部分”看成“对象外部、被对象使用的某种东西”,此模式就很好理解了。我们将变化转移到一个使用或者拥有变化的对象(此对象是指抽象类的对象和用来实现抽象类的派生类的对象)。当出现继承的类爆炸情况时,也许你该考虑此模式的应用场景了。

3.Strategy模式是一种定义算法家族的方法,所有的算法都做相同的工作,它们只是拥有不同的实现。当你的代码中出现了很多switch或者if else的语句,你应该考虑此模式。Strategy模式带来的缺点是类的数量的增加,在java中可以通过将实现类作为嵌套类放在Strategy抽象类中来解决。

4.singleton模式:
保证一个类有且仅有一个实例,并提供一个访问它的全局访问点
单线程应用:
第一种:静态初始化

public class Singleton {
    
private Singleton() {
    }

    
private static Singleton instance = new Singleton();

    
public static Singleton getInstance() {
        
return instance;
    }
}


posted on 2008-06-11 19:46 天书 阅读(164) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理



<2008年6月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

常用链接

留言簿(5)

随笔档案

文章分类

文章档案

好友的Bolg

搜索

  •  

最新评论

阅读排行榜

评论排行榜