
业务代码与技术代码耦合,主业务和增值业务代码指责耦合,多余的依赖关系。对程序来讲是不健康的。如上图网络框架可以进一步优化。
1.门面设计模式
定义:要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行,门面模式提供了一个高层次的接口,使得子系统更易于使用;
目的:(1)门面对象是通往外界子系统内部的唯一通道; (2)通过门面对象降低程序耦合;
解耦: 客户端与第三方库(子系统)解耦,让子系统内部模块功能更容易拓展和维护。
单一职责:客户端根本不需要知道第三方系统提供什么功能甚至不需要知道第三方系统如何使用,只需要和中间门面类交互即可。



代理模式
定义:给目标对象提供一个代理对象,并由代理对象控制对目标对象的引用;
目的:(1)通过引入代理对象的方式来间接访问目标对象,防止直接访问目标对象给系统带来的不必要复杂性; (2)通过代理对象对原有的业务增强;


设计模式的类型总结

网友评论