设计模式
设计模式
Fisher3652
这个作者很懒,什么都没留下…
展开
-
模板模式
1.模板模式在父类中定义主体流程,封装公共方法,预留钩子方法,由继承的子类实现。2.创建抽象父类Fatherpackage org.example.template;public abstract class Father { //定义业务流程 public void life() { study(); work(); love(); } //公共方法 public void study() {原创 2020-07-22 16:58:46 · 109 阅读 · 0 评论 -
委托模式
1.委托模式一个对象接收到了请求,但是自己不处理,交给其他的对象处理2.创建接口Companypackage org.example.entrust;public interface Company { void product();}3.创建实现类Mysqlpackage org.example.entrust;public class Mysql implements Company { @Override public void product()原创 2020-07-22 16:29:10 · 131 阅读 · 0 评论 -
装饰器模式
1.装饰器模式一种用于代替继承的技术,无需通过继承增加子类就能扩展对象的新功能。使用对象的关联关系代替继承关系,更加灵活,同时避免类型体系的快速膨胀。优点:灵活性:装饰器模式将功能切分成一个个独立的装饰器,在运行期可以根据需要动态的添加功能,甚至对添加的新功能进行自由的组合;扩展性:当有新功能要添加的时候,只需要添加新的装饰器实现类,然后通过组合方式添加这个新装饰器,无需修改已有代码,符合开闭原则;与代理模式的区别:装饰器模式偏重对原对象功能的扩展,扩展后的对象仍是是对象本身;然而代理模式偏重原创 2020-07-22 15:41:28 · 620 阅读 · 0 评论 -
建造者模式(静态内部类)
1.建造者模式使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。建造者模式类图如下:Product:要创建的复杂对象Builder:给出一个抽象接口,以规范产品对象的各个组成成分的建造。这个接口规定要实现复杂对象的哪些部分的创建,并不涉及具体的对象部件的创建;ConcreteBuilder:实现Builder接口,针对不同的商业逻辑,具体化复杂对象的各部分的创建。 在建造过程完成后,提供产品的实例;Director:调用具体建造原创 2020-07-21 16:52:44 · 858 阅读 · 0 评论 -
策略模式
1.定义对一系列算法进行封装并定义一个抽象的接口,通过继承该接口实现具体的算法。策略模式让算法可以独立于使用它的客户而改变。 (使用策略模式可以减少大量的if,else if)缺点:1)客户端必须知道所有的策略类,并自行决定使用哪一个策略类;2)略模式造成很多的策略类。...原创 2020-07-20 16:38:07 · 94 阅读 · 0 评论 -
代理模式
1.设计模式原则单一职责原则:一个类或者一个接口只负责唯一项职责,尽量设计出功能单一的接口;依赖倒转原则:高层模块不应该依赖低层模块具体实现,解耦高层与低层。既面向接口编程,当实现发生变化时,只需提供新的实现类,不需要修改高层模块代码;开放-封闭原则:程序对外扩展开放,对修改关闭;换句话说,当需求发生变化时,我们可以通过添加新模块来满足新需求,而不是通过修改原来的实现代码来满足新需求;迪米特法则:一个对象应该对其他对象保持最少的了解,尽量降低类与类之间的耦合度;里氏代换原则:所有引用基类(父类)原创 2020-07-20 15:45:21 · 388 阅读 · 0 评论