1.模板方法模式
模板方法模式(Template Method):父类中定义-组操作算法骨架,而将一些实现步骤延迟到子类中,使得子类可以不改变父类的算法结构的同时可重新定义算法中某些实现步骤。
比如我们生活中用蛋糕模具做蛋糕,做出的蛋糕是外形相同的,因为他们都用的同一个模具,这是最基本的一一个蛋糕。当然我们看到商店里卖的蛋糕五花八门,有的涂层奶油,有的抹上巧克力,有的浸入果汁等,这都是对蛋糕的二次加工,也就是说顾客对蛋糕有不同的需求,所以为了满足更多顾客需求,烤制出蛋糕后,我们还要对他们再添加点美味的作料,让他们更美味而满足每个顾客的需求。所以说我们需求解决方案中提到的基本提示框应该就是我们要抽象出来的,因为它是最简单的一个提示框,其他提示框都比这个提示框要多一-些功能,也就是说我们要对这个添加一些‘佐料’让其满足用户的需求。比如标题提示框多了一个标题组件,取消按钮提示框多了一个取消按钮组件,但是首先要实现最基础的提示框。
使用
模板方法的核心在于对方法的重用,它将核心方法封装在基类中,让子类继承基类的方法,实现基类方法的共享,达到方法共用。当然这种设计模式也将导致基类控制子类必须遵守某些法则。这是一种行为的约束。当然为了让行为的约束更可靠,基类中封装的方法通常是不变的算法,或者具有稳定的调用方式。子类继承的方法亦是可以扩展的,这就要求对基类继承的方法进行重写。当然为了更好地实践,通常要控制这种拓展,这样才能让基类对子类有更稳健的束缚力。然而子类对自身私有行为的拓展还是很有必要的。
2.观察者模式
观察者模式(Observer): 又被称作发布-订阅者模式或消息机制,定义了-一种依赖关系,解决了主体对象与观察者之间功能的耦合。
简单实现
观察者模式最主要的作用是解决类或对象之间的耦合,解耦两个相互依赖的对象,使其依赖于观察者的消息机制。这样对于任意一一个订阅者对象来说,其他订阅者对象的改变不会影响到自身。对于每一个订阅者来说,其自身既可以是消息的发出者也可以是消息的执行者,这都依赖于调用观察者对象的三种方法(订阅消息,注销消息,发布消息)中的哪一种。团队开发中,尤其是大型项目的模块化开发中,一位工程师很难做到熟知项目中的每个模块,此时为完成一-个涉及多模块调用的需求,观察者模式的优势就显而易见了,模块间的信息传递不必要相互引用其他模块,只需要通过观察者模式注册或者发布消息即可。通过观察者模式,工程师间对功能的开发只需要按照给定的消息格式开发各自功能即可,而不必去担忧他人的模块。
3.状态模式☆
状态模式(State): 当一个对象的内部状态发生改变时,会导致其行为的改变,这看起来像是改变了对象。
原文:https://www.cnblogs.com/LeoXnote/p/13052339.html