大话设计模式(二)

七、代理模式




模式解析:模式中有一个接口类,真实实体和代理两个类继承了接口类,也就是接口类中的方法对两个类都适用。代理模式其实就是真实实体本身不去做请求,而是通过代理来完成,在客户端调用的时候我们只需调用代理的相关代码就好了。

思想概况:一、远程代理,为一个对象在不同的地址空间提供局部代表,隐藏一个对象存在于不同地址空间的事实。二、虚拟代理,根据需要创建开销很大的对象。三、安全代理,控制真实对象访问时的权限。四、职能指引,调用真实的对象时,代理处理另外的事。

八、工厂方法模式

以计算机为例,结构图如下:

简单工厂模式:



工厂方法模式:


模式解析:三者的共同点是具有封装、继承、多态的特点。简单工厂模式违背了开放——封闭原则,因为要是添加一个具体的类就要修改运算类和工厂类。而工厂方法模式应运而生,它定义一个用于创建对象的接口,也就是工厂类,让子类决定具体实例化哪一个类。也就是说,工厂方法吧简单工厂的内部逻辑判断移到客户端代码进行了。增加功能,本来是修改工厂类,现在是修改客户端。

再说抽象工厂模式,以书中的数据访问程序为例:



有三个接口类:IFactoryIUserIDepartment

IDepartment接口,用于客户端访问,解除与具体数据库访问的耦合。IFactory接口定义一个创建访问IDepartment表对象的抽象的工厂接口。在客户端只需确定实例化哪一个数据库访问对象给factory,此时已与具体的数据库访问解除了依赖。抽象工厂模式就是提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类。

九、原型模式

 

模式解析:原型类就是从一个对象再创建另外一个可定制的对象,而且不需要任何创建细节。

思想概况:抽象原型类的关键是具有一个Clone方法。当客户端调用clone方法时可以生成新的简历,还可以修改新简历的细节。“浅复制”,被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用都任然指向原来的对象。“深复制”把引用对象的变量指向复制过来的新对象,而不是原有的被引用的对象。

十、模板方法模式



模式解析:说白了这种方法就是先定义一个模子,然后要是使用的话就实例化出来一个去用。

思想概况:模板方法模式是通过把不变行为搬移到超类中,去除子类中的重要代码来实现它的优势。

十一、迪米特法则

如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。


 

评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值