面向对象的开发范式

面向对象的最大好处就是封装,让我们回顾一下这些设计模式都封装了哪些方面。

        创建型模式封装了实例化的过程,客户对象不再关心这些创建的细节:

        应该使用哪个具体类,如何初始化和组装实例。

创建型模式   这样,也为实例化提供了很大的灵活性:

        可以使用克隆的方式加快其创建过程和简化创建细节,也可以根据配置确定

        实例化的具体类型,还可以根据需要创建单例对象。

 

            封装了那些不变的算法步骤,把变化那些分交给子类

模板方法模式    去封装,对使用者隐藏了具体的子类型。

 

        装饰器模式隐藏了被装饰对象;

        并且,由于装饰对象和被装饰的对象具有相同的接口,

装饰器模式     客户对象在使用被装饰过的对象和未装饰过的对象时,

        不需要对它们区别对待,隐藏了装饰器类型。

 

        和装饰器模式一样,隐藏了被代理对象(目标对象),

代理模式    也实现了代理类型的隐藏。

 

        隐藏了被适配的接口/类,客户对象并不知道请求会

适配器模式   转发给被适配的对象。

 

外观模式    隐藏了子系统,封装了外观和子系统之间的复杂交互。

 

        实现了叶子类和分支子类的隐藏,客户对象操作叶子对象

组合模式    和分支对象时不需要区别对待。

 

策略模式    每一个具体策略都封装了一个具体的实现算法。

 

状态模式    每一个状态都封装了与一个特定状态相关的行为,

        Context隐藏了状态接口和实现,

        客户对象不知道它们的存在。

 

        不同的观察者对变化的处理是不同的,

        把这些变化封装在不同类型的观察者类型里,

观察者模式   由于它们有相同的接口,观察者就能独立于主题而变化。

        另外如果为主题也抽象了接口,

        这样观察者和主题两方面就能独立变化与重用,而不会影响对方。

posted @ 2017-07-19 10:23  54tiantian  阅读(226)  评论(0编辑  收藏  举报