设计模式4

本文详细介绍了软件设计中的两种重要模式——外观模式和建造者模式。外观模式通过提供一致的接口简化了子系统的使用,降低了耦合度;建造者模式则用于创建复杂对象,分离构建过程与表示,使得产品内部表象可以独立变化。

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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值