设计模式(单例模式、外观模式)

         本文要讲的包括单例模式、原型模式、模板方法模式、建造者模式、外观模式和组合模式。这些模式都不难理解。

       单例模式:只能创建一个实例。我们采用的办法是将构造函数设为私有,然后通过静态方法获取实例。如果有子类继承且要满足单例的话,将构造函数设为protected,同时将父类设为子类的友元类即可解决。

       我之前写过单例的实现方法:单例实现

       原型模式:是依照原型进行复制。所以必须构造拷贝函数。且拷贝函数要实现深拷贝。注意该拷贝函数可以封装。但是必须实现拷贝构造函数。

       模板方法模式:模板方法是抽象类声明方法,不实现。这相当于模板,方法由子类实现。  

                                          设计模式(单例模式、外观模式)_第1张图片


          建造者模式:所谓建造者,就是要建造东西。那么这有个步骤,有个过程。这个过程就是由建造者完成。由抽象类声明多个方法,实现类分别实现。重点是多了个建造类。建造类调用抽象类对象,在实例化时根据实例化对象按照建造过程,调用各个方法。

       外观模式:总体来看就是给你一个高级接口,实现有接口内部决定。你只用调该高级接口,接口内部可能调用不同对象的方法。

设计模式(单例模式、外观模式)_第2张图片


        组合模式:为将对象组合成树状结构,以表示“部分-整体”的层次结构。除叶子节点外,普通节点需要添加add函数,以组成树状结构。

设计模式(单例模式、外观模式)_第3张图片

     

你可能感兴趣的:(设计模式)