设计模式
yankunhaha
这个作者很懒,什么都没留下…
展开
-
设计模式之原型模式
一、原型模式定义 原型模式就是用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 当要实例化的类是在运行时动态指定的,或者制定类型的对象创建过程过于复杂,但我们又需要频繁的使用该对象,可以使用原型模式。 二、UML结构图 原型模式主要包含如下三个角色: Prototype:抽象原型类。声明克隆自身的接口。 ConcretePrototype:具体原型类。实现克隆的具体操作...原创 2018-08-15 00:06:01 · 189 阅读 · 0 评论 -
设计模式之代理模式
1、代理模式简述 代理模式为另一个对象提供一个替身或者占位符以控制对这个对象的访问。在代理模式中,我们创建具有现有对象的对象,以便实现系统控制功能。在外界访问的时候,我们可以添加自己的需求。比如说Spring框架里的AOP、JDK里的Dynamic Proxy、Cglib等。代理模式在各种开发框架和中间件中被广泛使用,比如RPC,数据库访问等。 为什么要用代理模式? 中介隔离作用:在某些情况下...原创 2018-10-09 19:49:55 · 142 阅读 · 0 评论 -
设计模式之享元模式
转载,详见 https://blog.csdn.net/justloveyou_/article/details/55045638转载 2018-09-18 21:23:06 · 106 阅读 · 0 评论 -
外观模式
1、外观模式简述 外观模式隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型设计模式,提供了客户端请求的简化方法和对现有系统类方法的委托调用。简单来说就是封装子系统,简化子系统调用。 2、UML类图 3、具体实现 public class SubSystemA { public void methodA() { Sy...原创 2018-08-24 20:23:01 · 120 阅读 · 0 评论 -
设计模式之桥接模式
1、桥接模式简述 桥接模式的用意是"将抽象化(Abstraction)与实现化(Implementation)脱耦,使得二者可以独立地变化"。这句话有三个关键词,也就是抽象化、实现化和脱耦。 桥接模式所涉及的角色 (1) Abstraction:定义抽象接口,拥有一个Implementor类型的对象引用 (2)RefinedAbstraction:扩展Abstraction中的接口定义 ...原创 2018-08-23 21:31:17 · 162 阅读 · 0 评论 -
设计模式之适配器模式
1、适配器模式简述 适配器模式将一个类的接口,转换成开发人员期望的另一个接口,使用适配器让原本接口不兼容的类可以相互合作。适配器适合用于解决新旧系统(或新旧接口)之间的兼容性问题,而不建议在一开始就直接使用。如果从一开始接口和接口之间就没有兼容问题,不要多此一举使用适配器模式,不要为了设计模式而设计模式。 适配器模式有三种:类适配器、对象适配器、接口适配器。 2、UML类图 类适配器 ...原创 2018-08-23 20:10:42 · 126 阅读 · 0 评论 -
设计模式之建造者模式
1、建造者模式简述 建造者模式是将一个复杂的对戏的构建和它的表示分离,使得同样的构建过程可以创建不同的表示。它强调的是一步步创建对象,一般来说,建造者模式中对象不是直接返回的。 通常来说,建造者模式包括下面几个角色: (1)Builder:抽象接口,用来规范产品对象的各个组成部分的建造。这个接口规定要实现复杂对象的那些部分的创建,并不涉及具体对象部件的创建。 (2)ConcreteBuil...原创 2018-08-23 18:53:22 · 155 阅读 · 0 评论 -
设计模式之组合模式
转载,详见 https://www.cnblogs.com/lfxiao/p/6816026.html转载 2018-08-27 23:38:29 · 110 阅读 · 0 评论 -
设计模式之装饰模式
1、装饰模式简述 装饰模式以对客户端透明的方式给一个对象附加上更多的责任,可以在不需要创造更多子类的情况下,将对象的功能加以扩展。装饰模式包含如下角色: Component: 抽象构件 ConcreteComponent: 具体构件 Decorator: 抽象装饰类 ConcreteDecorator: 具体装饰类 2、UML类图 3、代码实现 /** * 饮料接口 * @au...原创 2018-08-30 21:29:00 · 112 阅读 · 0 评论 -
设计模式之工厂方法模式
1、工厂方法模式简述 工厂方法模式,又称多态工厂模式和虚拟构造器模式,通过定义工厂父类负责定义创建对象的公共接口,而子类则负责生成具体的对象。它重点关注对外开放一个用于对象创建的接口,让开发人员选择实例化哪一个类。工厂模式简单来说就是将对象生成的过程给封装起来了,调用者无需关注。 2、UML类图 3、实现例子 /** * 抽象工厂 */ public abstract class...原创 2018-08-19 15:24:09 · 128 阅读 · 0 评论 -
设计模式之单例模式
单例模式是最简单的设计模式之一。特点如下: 1、单例类只能有一个实例。 2、单例类必须自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。 闲话少说,下面来看单例模式的几种实现。 1、饿汉式(线程安全) /** * 单例模式-饿汉式 */ public class Singleton { private static Singleton instance...原创 2018-08-13 20:22:27 · 109 阅读 · 0 评论 -
设计模式之简单工厂模式
一、简单工厂模式类图 二、具体例子 // 水果接口 public interface Fruit { void display(); } // 苹果,实现水果接口 public class Apple implements Fruit { @Override public void display() { System.out.printl...原创 2018-08-15 23:31:29 · 137 阅读 · 0 评论 -
设计模式-总纲
一、设计模式分类 设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。 二、设计模式的六大原则 ...原创 2018-08-07 23:37:52 · 135 阅读 · 0 评论 -
设计模式之观察者模式
1、观察者模式简述 定义对象间的一种一对多的依赖关系,主要解决当一个对象的状态发生改变时,所有订阅它的对象都得到通知并且自动更新状态。 2、UML类图 3、代码实现 public interface Subject { void addObserver(Observer observer); void removeObserver(Observer observer...原创 2018-10-09 20:44:45 · 115 阅读 · 0 评论