本文主要是介绍大话设计模式(二),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
七、代理模式
模式解析:模式中有一个接口类,真实实体和代理两个类继承了接口类,也就是接口类中的方法对两个类都适用。代理模式其实就是真实实体本身不去做请求,而是通过代理来完成,在客户端调用的时候我们只需调用代理的相关代码就好了。
思想概况:一、远程代理,为一个对象在不同的地址空间提供局部代表,隐藏一个对象存在于不同地址空间的事实。二、虚拟代理,根据需要创建开销很大的对象。三、安全代理,控制真实对象访问时的权限。四、职能指引,调用真实的对象时,代理处理另外的事。
八、工厂方法模式
以计算机为例,结构图如下:
简单工厂模式:
工厂方法模式:
模式解析:三者的共同点是具有封装、继承、多态的特点。简单工厂模式违背了开放——封闭原则,因为要是添加一个具体的类就要修改运算类和工厂类。而工厂方法模式应运而生,它定义一个用于创建对象的接口,也就是工厂类,让子类决定具体实例化哪一个类。也就是说,工厂方法吧简单工厂的内部逻辑判断移到客户端代码进行了。增加功能,本来是修改工厂类,现在是修改客户端。
再说抽象工厂模式,以书中的数据访问程序为例:
有三个接口类:IFactory,IUser,IDepartment。
IDepartment接口,用于客户端访问,解除与具体数据库访问的耦合。IFactory接口定义一个创建访问IDepartment表对象的抽象的工厂接口。在客户端只需确定实例化哪一个数据库访问对象给factory,此时已与具体的数据库访问解除了依赖。抽象工厂模式就是提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类。
九、原型模式
模式解析:原型类就是从一个对象再创建另外一个可定制的对象,而且不需要任何创建细节。
思想概况:抽象原型类的关键是具有一个Clone方法。当客户端调用clone方法时可以生成新的简历,还可以修改新简历的细节。“浅复制”,被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用都任然指向原来的对象。“深复制”把引用对象的变量指向复制过来的新对象,而不是原有的被引用的对象。
十、模板方法模式
模式解析:说白了这种方法就是先定义一个模子,然后要是使用的话就实例化出来一个去用。
思想概况:模板方法模式是通过把不变行为搬移到超类中,去除子类中的重要代码来实现它的优势。
十一、迪米特法则
如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。
这篇关于大话设计模式(二)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!