设计模式4

来源:互联网 发布:红舞软件下载 编辑:程序博客网 时间:2024/05/17 21:56

7、        外观模式

外观模式(Façade),为了系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。

a)      外观模式应用:

                       i.              在设计初期阶段,应该要有意识的将不同的两个层分离,比如经典的三层架构。这样可以为复杂的子系统提供一个简单的接口,使得耦合大大降低。

                     ii.              在开发阶段,子系统往往因为不断地重构演化而变得越来越复杂,大多数的模式使用时也会产生很多小的类,这本是好事,但也给外部调用它们的用户程序带来了使用上的困难,增加外观模式可以提供一个简单的接口,减少它们之间的依赖。

                  iii.              在维护一个遗留的大型系统时,可能这个系统已经非常难以维护和扩展了,但因为它包含非常重要的功能,新的需求开发必需要依赖于它。此时用外观模式也是非常合适的。 你可以为新系统开发一个外观(Façade类),来提供设计粗糙或高度复杂的遗留代码的比较清晰简单的接口,让新系统与Façade对象交互,Façade与遗留代码交互所有复杂的工作。

                  iv.              外观模式注重的是简单化接口,他更多的时候是从架构的层次去看整个系统,而并非单个类的层次。

                     v.              外观模式经常使用单例实现,但子系统可以有多个Façade

8、        建造者模式

建造者模式(Builder),将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

a)      优点:

                       i.              建造者模式的使用使得产品的内部表象可以独立的变化。使用建造者模式可以使得客户端不必知道产品内部组成细节。

                     ii.              每一个Builder相对独立,而与其他Builder无关。

                  iii.              可使对构造过程更加精细控制。

                  iv.              将构建代码和表示代码分开。

b)      缺点:

                       i.              建造者模式的缺点在于难于应付“分步骤构建算法”的需求变动。

c)       建造者模式的应用:

                       i.              需要生成的产品对象有复杂的内部结构。

                     ii.              需要生成的产品对象的属性相互依赖,建造者模式可以强迫生成顺序。

                  iii.              在对象创建过程中会使用到系统中的一些其他对象,这些对象在产品对象的创建过程中不易得倒。

                  iv.              建造者模式是在当创建复杂对象的算法应独立于该对象的组成部分以及它们的装配方式时适用的模式。

原创粉丝点击