设计模式(二)11.3

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/iwuio/article/details/83720948

建造者:将一个复杂的构建与它的表示分离,使用同样的构建过程可以创建不同的的表示。

首先有一个list parts,有一个add方法可以向list添加字符串,还有一个show方法可以循环显示list的信息

在有一个构建类,有一个字段Produc ,有一个builpart方法其中就是调用的product的add方法。并且有一个getresult方法返回product。

再有一个director 有一个construct方法参数是buildfer运行之后就会执行buildfer.builderparta.等于把list添加信息了。

客户端执行

创建指挥类,创建建造者,

执行director.construst,可以进行list的添加了,在执行bi.(builder).getresult得到product对象,执行show就可以执行list的循环扫描。

观察者模式:

总体来说大概的样子是这样,一个类把另外一个类作为字段,并且是一个list作为收集另外一个类的集合。有添加有删除,并且有一个循环的方法,执行所有list中的对象的方法,当然这个方法中的某个内定参数和第一个类有关系,这个关系怎么产生的。

就是第二个类把第一个类作为字段。

在创建第二个类的时候,把第一个类的对象传入第一个类。

扫描二维码关注公众号,回复: 4325858 查看本文章

通知者的关键就在于,第一个类循环调用第二个类的方法,并且方法中有第一个类的信息,达到通过给所有观察者,并且观察者有通知者的信息。

享元模式

运用共享技术有效的支持了大量的细颗粒度的对象。有的时候不用创建那么多的对象,创建两三个可以重复使用

来看一下简单的第一个例子(我自己的理解)

创建一个用户类user用做参数使用,website网站类name字段,use方法参数有name和user.name重点是user.name代表从外边得到的参数,name代表本类的独有属性,这个对象的(唯一代表)

工厂类批量创建website其中用的hashtable,创建之后同时加入到hashtable中,并且有一个通过key取出的方法

在创建的时候客户端使用的时候,name变了username.name是同一个对象,但是只有username.name是一个新的那就是没有创建新的对象,关键在于是不是重新创建对象,关键元素在于是否重新创建浪费内存,这个应该就是享元模式。关键在于判断这个对象是否已经创建了。

访问者模式

表示一个作用与某对象结构中的各元素的操作。它使你可以在不改变各元素的前提下作用于这些元素的新操作

action类为抽象类

success是子类,有对应man的getmanconclusion和women的getwomanconclusion方法对于的参数是man和woman。

person是基类

man和woman继承person参数是action

使用参数的方法action.getman(woman)

objectstructure对象结构有字段Ilist<person>可以添加person

然后有display循环调用person的accept,参数是action这样首先判断是男还是女自动找success的男的方法还是女的方法

客户端使用的时候创建objectstructure对象结构,添加人person,创建action了。并且调用display方法,使用person的accpetc参数是action,这样会自动找到男人还是女人,使用这个具体的类。参数是action。并且使用action中的方法,到了男人女人类中方法已经明确了。在进入success类已经是顺序结构了。

 

猜你喜欢

转载自blog.csdn.net/iwuio/article/details/83720948
今日推荐