
设计模式
5detutu
这个作者很懒,什么都没留下…
展开
-
模板方法
定义定义了一个算法的骨架,饼允许子类为一个或者多个步骤提供实现,模板方法使得子类可以在不改变算法结构的情况下,重新定义算法的某些步骤。适用场景一次性实现一个算法的不变的部分,并将可变的行为留给子类来实现 各子类中公共的行为被提取出来并集中到一个公共子类中,从而避免代码重复 简单来说实现一些操作时,整体步骤很固定,但是呢。就是其中一小部分容易变,这时候可以使用模板方法模式,将容易...原创 2019-03-24 18:27:58 · 108 阅读 · 0 评论 -
工厂模式
目录工厂模式简单工厂适用场景优点缺点工厂方法定义适用场景优点缺点抽象工厂定义适用场景优点缺点产品等级和产品族工厂模式实现了创建者和调用者分离,工厂模式分为简单工厂、工厂方法、抽象工厂模式简单工厂适用场景1)工厂类负责创建的对象比较少2)客户端(应用层)只知道传入工厂类的参数,对于如何创建对象(逻辑)不关心优...原创 2019-03-23 22:46:42 · 124 阅读 · 0 评论 -
单例模式
目录单例的定义适用场景优点缺点单例的创建方式懒汉式饿汉模式静态内部类枚举方式序列化破坏单例模式防御反射攻击单例的定义保证一个类只有一个实例,并且提供一个访问该全局访问点适用场景想确保任何情况下都绝对只有一个实例,例如线程池,配置文件的读取,数据库的连接池等优点1)在内存中只有一个实例,减少了内存开销2)可以避免对资源的多重占用...原创 2019-03-23 16:47:14 · 113 阅读 · 0 评论 -
设计模式的分类及设计原则
设计模式分类创建型模式工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式结构型模式适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式行为型模式策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式设计模式六大原则开闭原则(Open Close Principle)...原创 2019-03-23 09:53:26 · 96 阅读 · 0 评论 -
观察者模式
定义定义了对象之间的一对多依赖,让多个观察者对象同时监听某一个主题对象,当主题对象放生变化时,它的所有依赖者(观察者)都会受到通知并更新适用场景关联行为场景,建立一套触发机制优点观察者和被观察者之间建立一个抽象的耦合 观察者模式支持广播通信缺点观察者之间有过多的细节依赖、提供时间消耗及程序复杂度 使用要得当,要避免循环调用//观察者接口public interf...原创 2019-03-25 18:21:16 · 131 阅读 · 0 评论 -
策略模式
定义定义了算法家族,分别封装起来,让它们之间可以相互替换,此模式让算法的变化不会影响到使用算法的用户 if...else...适用场景系统有很多类,而他们的区别仅仅在于他们的行为不同 一个系统需要动态地在几种算法中选择一种优点符合开闭原则 避免使用多重条件转移语句 提供算法的保密性和安全性缺点客户端必须知道所有的策略类,并自行决定使用哪一个策略类 会产生很多策略类...原创 2019-03-25 17:47:23 · 147 阅读 · 0 评论 -
装饰者模式
定义在不改变原有对象的基础之上,将功能附加到对象上,提供了比继承更有弹性的替代方案(扩展原有对象功能)适用场景扩展一个类的功能或者给一个类添加附加职责 动态的给一个对象添加功能,这些功能可以再动态的撤销优点继承的有力补充,比继承灵活,不改变原有对象的情况下给一个对象扩展功能 通过使用不同装饰类以及这些装饰类的排列组合,可以实现不同的效果 符合开闭原则缺点会出现更多的代...原创 2019-03-25 17:08:15 · 156 阅读 · 0 评论 -
原型模式
定义原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象,不需要知道任何创建的细节,不调用构造函数适用场景类初始化消耗较多资源 new产生的一个对象需要非常繁琐的过程(数据准备、访问权限等) 构造函数比较复杂 循环体中生产大量对象优点原型模式性能比直接new一个对象性能高 简化创建过程缺点必须配备克隆方法 对克隆复杂对象或对克隆出的对象进行复杂构造时,容易...原创 2019-03-25 15:21:00 · 131 阅读 · 0 评论 -
外观模式
定义又叫门面模式,提供了一个统一的接口,用来访问子系统的一群接口,外观模式定义了一个高层接口,让子系统更加容易使用适用场景子系统越来越复杂,增加外观模式提供简单调用接口 构建多层系统结构,利用外观对象作为每层的入口,简化层间调用优点简化了调用过程,无需了解深入子系统,防止带来风险 减少系统依赖,松散耦合 更好的划分访问层次 符合迪米特法则,即最少知道原则缺点增加子系...原创 2019-03-25 13:23:01 · 136 阅读 · 0 评论 -
适配器模式
定义将一个类的接口转换成客户期望的另一个接口,使原本接口不兼容的类可以一起工作适用场景已经存在的类,它的方法和需求不匹配时(方法结果相同或相似) 不是软件设计阶段考虑的设计模式,是随着软件维护,由于不同产品、不同厂家造成功能类似而接口不相同情况下的解决方案优点能提高类的透明性和复用,现有的类复用但不需要改变 目标类和适配器类解耦,提高程序扩展性 符合开闭原则缺点适配器...原创 2019-03-25 12:09:10 · 114 阅读 · 0 评论 -
代理模式
目录定义适用场景优点缺点代理的分类静态代理动态代理JDK动态代理CGLIB动态代理JDK动态代理和CGLIB的区别定义为其他对象提供一种代理,以控制对这个对象的访问,代理对象在客户端和目标对象之间起到中介的作用适用场景保护目标对象 增强目标对象 比如SpringAOP、事物原理、日志打印、权限控制、远程调用等优点代理模式能将代理...原创 2019-03-24 15:34:21 · 119 阅读 · 0 评论