设计模式(三)

装饰模式

首先这个是分成3个级别,person基类,finery次基类,tshirt子类,bigtrouser子类

关键在于次基类把基类作为字段,并且用decoreate方法person做参数给次基类类做赋值

都有show方法,次基类重写了show方法,调用基类对象的show方法,

在整个对象链中,子类循环调用子类的show方法,先执行自己的特殊语句在执行base.show。并且通过decoreate方法来得到子类对象的变化。

最后链头在person基类上,循环结束。

中介者模式

一个中介者,联合国

两个国家,美国和伊拉克

中介者有两个属性,美国和伊拉克,并且有一个declare方法参数mes,和college。里面又是colle的getmessage方法,并且是差错调用,有coll1调用coll2,有coll2调用coll1.

其中国家中有联合国这个字段。有declare方法,参数是mes,里面是联合国对象,加message和这个本类对象。

客户端调用的时候

创建联合国对象,然后创建美国,和伊拉克,

赋值属性美国和伊拉克,

美国调用declare方法产生mes,方法内部其实属性联合国的declare方法,其中有调用了伊拉克的getmes方法,这样呀就达到了,美国的消息传到了,通过伊拉克的getmase方法输出了。

指责链模式

Handler是一个基类,这个类中有handler success这个字段,并且可以通过外部赋值。

其中的Handlerequest方法中有判断,一程运行下一层通过success在次调用handlerequst这样通过复制不同的的success可以通过再次调用handlerrequest来达到职责连的效果。

每一个不同的子类,通过success方法上面的的新的方法,来区别每个类创建的意义。功能

命令模式

将请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作

拿书上的例子打比方,一个barbecuer烤肉串者,有两个方法

一个命令类bakecommand,其中有字段barbecuer并且excutecommand调用的是barbecuer.bakemutton方法或者bakechickenwing方法。

服务员类waiter

其中有一个字段comand,赋值给command其中的notify方法就是调用的command.excutecommand.

其实就是一个类把另外一个类作为字段,然后自己的方法调用一个类的方法,然后又添加一个类,这个类以上一个类做字段,继续调用。

最后声明服务员类,调用notify方法。其实就是调用的烤肉者的某一个方法,区别或者关键点在于,底层类有很多方法,其中中间的类只有一个方法,换句话来说就是中间类只调用了底层类的某一个方法。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值