如何叫外卖------代理模式
摘要:1.代理模式就是将一个类进行进一步的封装,然后提供相同的接口(它与适配器的区别在于适配器提供的是不同的接口)。举例说明:如何使叫外卖跟在店里点餐一样方便,我们知道送外卖的话需要打包,送货等细节,但是我们把这些细节封装起来,全部由代理去完成,这样对于客户来说,想叫外卖的时候,只用通过代理类来调用一个order接口就OK2.代理模式主要有四种应用场合:(1)远程代理:比如上面那个例子(2)虚代理:比如用米聊发送接收图片时,传过来的就是一个虚代理,需要用户点下载来触发GetImage,很多网页中也采用了类似的技术,以免图片太大,影响网页整体传输速度。(3)保护代理:通过代理来对被保护对象实行访问控制
阅读全文
糖果----状态模式:
摘要:1.把这个东西跟数字电路里面的时序电路类比就很好理解,记住糖果机的例子也OK。 2.主要利用将每一个状态封装成一个类的办法,来使复杂的状态转换逻辑变得简单,而且容易扩展。利用了C++的多态性,状态机只要用当前状态指针调用当前状态的方法即可,不用关心各个状态的具体内部实现。这就造成了当状态机状态改变时,它的行为也改变了。它与一般多态的区别在于,对对象方法的调用会改变对象的当前状态,跟策略模式的主要区别也在于此。3.这个模式主要适用于状态转换没有通用规律,而是来自于客户需求的情况,如果状态转换间有通用的规律,则不用将每个状态写成一个类,只要用通用的代码实现各个状态间的自动转换即可,比如AC自动机。
阅读全文
煮饭----适配器和外观模式
摘要:今天看了适配器模式和外观模式,总结如下:1.适配器和外观:一个是转换接口,一个是简化接口,两者其实没有太大差别2.就是在两个模块耦合的时候,最好有一个中间模块,假定调用者定义好接口之后,接口不变,被调用者接口可能发生变化,如果有一个适配器作为中间模块,就可以把新接口适配到旧接口上去,使被调用者变化后,调用者不用修改代码,只用修改适配器部分的代码,通过这个来解耦。在两个模块耦合的最初期,就要把适配器设计进去,对被调用者进行进一步的封装,来适应调用者3.类适配器和对象适配器:一个用继承,一个用组合。类适配的话,就是这个适配器同时继承被适配者和适配者,被适配者的接口本来就可以使用,减少代码量,比如说
阅读全文