首页 > 其他 > 详细

设计模式总结

时间:2016-02-01 02:04:14      阅读:146      评论:0      收藏:0      [点我收藏+]

设计原则

1. 封装变化:

    1). 找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。

    2). 这个原则的另一种思考方式:把会变化的部分取出并封装起来,以便以后可以轻易地改动或扩充此部分,而不影响不需要变化的其他部分。

    3). 这样的概念很简单,几乎是每个设计模式背后的精神所在。所有的模式都提供一套方法"系统中某部分改变不会影响其他部分"。

2. 针对接口编程,而不是针对实现编程。

    1). 我们利用接口代表每个行为,比方说,FlyBehavior与QuackBehavior,而行为的每个实现都将实现其中一个接口。所以这次鸭子不会负责实现Flying与Quacking接口,反而由我们制造一组其他类专门实现

         FlyBehavior与QuackBehavior,这就称为"行为"类。由行为类而不是Duck类来实现行为接口。

    2). 这样的做法迥异于以往,以前的做法是:行为来自Duck超类的具体实现,或是继承某个接口并由子类自行实现而来。这两种做法都是依赖于"实现",我们被实现绑的死死的,没办法更改行为(除非写更多代码)。

    3). 在我们的芯设计中,鸭子的子类将使用接口(FlyBehavior与QuackBehavior)所表示的行为,所以实现的"实现"不会被绑死在鸭子的子类中。(话句话说,特定的具体行为编写在实现了FlyBehavior与QuackBehavior的类中)。

    4). 针对接口编程的真正意思是针对超类型编程。针对接口编程的关键在于多态。利用多态,程序可以针对超类型编程,执行时会根据实际状况执行到真正的行为,不会被绑死在超类型的行为上。"针对超类型编程"这句话,

         可以更明确地说成"变量的声明类型应该是超类型",通常一个抽象类或者是一个接口,如此,只要是具体实现比超类型的类所产生的对象,都可以指定给这个变量。这也意味着,声明类时不必理会以后执行时的真正对象类型。

3. 多用组合,少用继承

    使用组合建立系统具有很大的弹性,不仅可将算法簇封装成类,更可以"在运行时动态地改变行为",只要组合的行为符合正确的接口标准即可。

4. 为了交互对象之间的松耦合性设计而努力

    针对接口去调用,调用者和实际被调用者之间松耦合。

 

设计模式:

1. 策略模式:定义了算法簇,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。

2. 观察者模式:定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。

    1). setChange()方法把changed标志设置为true。notityObservers()只会在changed标志为"true"时通知观察者。在通知观察者之后,把changed标志设回"fasle"。这样做有其必要性。setChanged()方法可以让你在更新

         观察者时,有更多的弹性,你可以适当的通知观察者。在满足某些条件的情况下,再通知观察者。

 

设计模式总结

原文:http://www.cnblogs.com/Jtianlin/p/5174259.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!