【软件构造】小谈designing patterns

在面向对象程序设计中,设计模式可以分为三大类,分别为creational patterns,structual patterns,behavioral patterns。creational patterns主要包括factory method;structural patterns主要包括adapter和decorator;behavior patterns主要包括stategy method,template method,iterator method和visitor method。

factory method提供了一种创建对象的最佳方式,就是让“工厂”帮你来创建对象,client只需要调用工厂中的方法即可。

在下图中,将Factory接口通过implement了Factory接口的类DogFactory来实例化,接着实例化接口factory调用它的createAnimal方法创建dog对象。

adapter模式十分简单,就是通过增加一个接口将已存在的子类封装起来,client面向接口编程,从而隐藏了具体子类。下面这个UML类图表示的很清楚,就不多说了。

decorator相对复杂一些,我想先将UML类图放在这里。

decorator的目的是为对象增加不同侧面的特性,解决方法是实现一个通用接口作为要扩展的对象,添加功能,但将主要责任委托给底层对象。说白了,就是用ConcreteDecorator来装饰ConcreteComponent,注意到Decorator和Component是组合的关系。

strategy和template模式相对简单,但是很多人分不清二者的关系。这里着重说明一下,strategy使用的是委托,而template使用的是继承+重写。下面放上UML类图让大家直观感受一下~

Strategy:                                                                  

template:

iterator和visitor相信大家已经比较熟悉了,这里就不多说了。

希望大家看完之后有所收获!

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值