![](https://img-blog.csdnimg.cn/20190828084137668.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
图解设计模式
山东馍馍
便宜、听话、能加班~
展开
-
图解设计模式-Visitor模式
Visitor(访问者):负责对数据结构中每个具体的元素声明一个用于访问的方法。ConcreteVisitor(具体的访问者):负责实现Visitor角色所定义的接口Element(元素):表示Visitor角色的访问对象,声明一个接受访问者的accept方法,参数为Visitor角色ConcreteElement(具体元素):负责实现Element角色定义的接口ObjectStructu...原创 2019-05-29 15:11:57 · 740 阅读 · 0 评论 -
图解设计模式-Flyweight模式
Flyweight(轻量级):按照通常方式编写程序会导致程序变重,所以如果能够共享实例会比较好,而Flyweight角色表示的就是那些实例会被共享的类。FlyweightFactory(轻量级工厂):该角色是生成Flyweight角色的工厂,在工厂中生成Flyweight角色可以实现共享实例。Client(请求者):该角色使用FlyweightFactory角色生成Flyweight角色。...原创 2019-05-28 22:30:40 · 476 阅读 · 0 评论 -
图解设计模式-Mediator模式
Mediator(仲裁者/中介者):Mediator角色负责定义与Colleague角色进行通信和做出决定的接口ConcreteMediator(具体的仲裁者/中介者):负责实现Mediator角色的接口,负责实际做出决定Colleague(同事):负责定义与Mediator角色进行通信的接口ConcreteColleague(具体的同事):负责实现Colleague角色定义的接口...原创 2019-05-26 20:43:16 · 467 阅读 · 0 评论 -
图解设计模式-Command模式
Command(命令):负责定义命令的接口ConcreteCommand(具体的命令):负责实现在Command中定义的接口Receiver(接收者):该角色是Command角色执行命令时的对象,也可以称其为命令接收者Client(请求者):负责生成ConcreteCommand角色并分配Receiver角色Invoker(发动者):是开始执行命令的角色,它会调用在Command角色中定义...原创 2019-05-26 20:18:13 · 236 阅读 · 0 评论 -
图解设计模式-Chain Of Responsibility模式
图解设计模式-Chain Of Responsibility模式原创 2019-05-15 20:35:06 · 211 阅读 · 0 评论 -
图解设计模式-Bridge模式
图解设计模式-Bridge模式原创 2019-05-15 20:33:54 · 338 阅读 · 0 评论 -
图解设计模式-Composite模式
图解设计模式-Composite模式原创 2019-05-15 20:33:04 · 205 阅读 · 0 评论 -
图解设计模式-Memento模式
Originator原创 2019-05-15 20:31:27 · 148 阅读 · 0 评论 -
图解设计模式-State模式
State(状态):定义了根据不同状态进行不同处理的接口ConcreteState(具体的状态):表示各个具体的状态,实现了State接口Context(状况,上下文):该角色持有表示当前状态的ConcreteState角色对象,还对外提供了接口...原创 2019-04-22 22:41:08 · 424 阅读 · 0 评论 -
图解设计模式-AbstractFactory模式
AbstractProduct(抽象产品):负责定义AbstractFactory角色所生成的抽象零件和产品的接口AbstractFactory(抽象工厂):定义用于生成抽象产品的接口ConcreteProduct(具体产品):负责实现抽象产品接口ConcreteFactory(具体工厂):生产具体的产品...原创 2019-04-17 14:57:15 · 150 阅读 · 0 评论 -
图解设计模式-Observer模式
Subject(抽象的被观察对象):定义了注册观察者和删除观察者的方法,还声明了获取现在状态的方法。Concreteuject(具体的被观察对象):当自身状态发生改变以后,他会通知所有已经注册的Observer角色。Observer(抽象观察者):负责接收来自Subject角色的状态变化通知,为此声明了update方法ConcreteObserver(具体的观察者):表示具体的Observe...原创 2019-04-16 21:59:09 · 686 阅读 · 1 评论 -
图解设计模式-Facade模式
Facade该角色是代表构成系统的许多其他角色的简单窗口,Facade角色向系统外部提供高层接口。构成系统的许多其他角色这些角色各自完成自己的工作,他们并不知道Facade角色的存在,Facade角色负责调用他们,而他们不能调用Facade角色ClientClient负责调用Facade角色...原创 2019-04-09 16:15:00 · 419 阅读 · 0 评论 -
图解设计模式-Proxy模式
/** * @ClassName: Printable * @Author: Leo * @Description: 打印功能的接口 * @Date: 2019/3/26 20:34 */public interface Printable { /** * 设置打印机名称 */ void setPrinterName(String name);...原创 2019-03-26 21:13:47 · 152 阅读 · 0 评论 -
图解设计模式-Decorator模式
Component:增加功能时的核心角色,装饰物和被装饰物都要实现此接口,这样就保持了一致性 ConcreteComponent:该角色是实现了Component角色所定义的接口的具体被装饰的类 Decorator:装饰物抽象类,该角色内部保存了被装饰的对象Component角色 ConcreteDecorator:该角色是具体的装饰物角色,用于装饰具体的Conc...原创 2019-03-19 21:13:52 · 137 阅读 · 0 评论 -
图解设计模式-Strategy模式
在Strategy中有以下登场角色: Strategy(策略): Strategy角色负责决定实现策略所必须的接口 ConcreteStrategy(具体的策略): ConcreteStrategy角色负责实现Strategy角色的接口,即负责实现具体的策略(战略、方向、方法和算法) Context(上下文): 负责使用Strategy角色 ...原创 2019-03-12 08:54:09 · 190 阅读 · 0 评论 -
图解设计模式-Builder模式
建造者模式建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。一个 Builder 类会一步一步构造最终的对象。该 Builder 类是独立于其他对象的。介绍意图:将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。主要解决:主要解决在软件系统中,有时候面...原创 2019-01-23 22:06:57 · 243 阅读 · 0 评论 -
图解设计模式-Prototype模式
原型模式原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。例如,一个对象需要在一个高代价的数据库操作之后被创建。我们可以缓存该对象,在下一个请求时返回它的克隆,在需要的时候更新数据库,...原创 2019-01-20 10:24:00 · 212 阅读 · 0 评论 -
图解设计模式-Singleton模式
单例模式单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。注意:1、单例类只能有一个实例。 2、单例类必须自己创建自己的唯一...原创 2019-01-17 16:40:04 · 254 阅读 · 0 评论 -
图解设计模式-FactoryMethod模式
工厂模式工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。介绍意图:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。 主要解决:主要解决...原创 2019-01-17 08:51:11 · 223 阅读 · 0 评论 -
图解设计模式-TemplateMethod模式
模板模式在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。介绍意图:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 主要解决:一些方法通用,却在每一个子类都重新...原创 2019-01-16 20:43:08 · 245 阅读 · 0 评论 -
图解设计模式-Adapter模式
适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。就相当于一个电源适配器一样,把220V的电变为12V。意图:将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 主要解决:主要...原创 2019-01-14 10:14:47 · 192 阅读 · 0 评论 -
图解设计模式-Iterator模式
迭代器模式(Iterator Pattern)是 Java 和 .Net 编程环境中非常常用的设计模式。这种模式用于顺序访问集合对象的元素,不需要知道集合对象的底层表示。迭代器模式属于行为型模式。意图:提供一种方法顺序访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示。 主要解决:不同的方式来遍历整个整合对象。 何时使用:遍历一个聚合对象。 如何解决:把在元素之间游走的责任交给迭...原创 2019-01-11 22:43:11 · 245 阅读 · 0 评论