设计模式
黯叶
这个作者很懒,什么都没留下…
展开
-
设计模式(Java随笔)—适配器模式
适配器模式(Adapter Pattern):(变压器模式)将一个类的接口转换为用户希望的另一个接口,当系统的数据和行为都正确,但接口不符时,考虑用适配器模式适配器模式角色:目标(Target)角色:要转换成的目标接口 源(Adaptee)角色:要被转换成目标角色的源角色(已经存在的类) 适配器(Adapter)角色:适配器模式的核心,通过继承或类关联的方式,重写目标角色接口的方法,输...原创 2018-10-11 19:39:01 · 171 阅读 · 0 评论 -
设计模式(Java随笔)—命令模式
命令模式(Command Pattern):又叫行动模式或交易模式,将请求者对象与操作者对象分割开(杜绝直接联系)Encapsulate a request as an object,thereby letting you parameterize clients with different reauests,queue or log requests,and support undoabl...原创 2018-10-22 23:23:10 · 166 阅读 · 0 评论 -
设计模式(Java随笔)—迭代器模式
迭代器模式(Iterator Pattern):最常被使用的几个模式之一,被广泛的应用到Java API中,如Java集合(Collection)框架中,就有用迭代器来遍历集合中的元素(在Java开发中,尽量不要自己写迭代器模,使用Java API提供的Iterator一般就能满足项目要求)Provide a way to access the elements of an aggregate...原创 2018-10-25 22:56:29 · 148 阅读 · 0 评论 -
设计模式(Java随笔)—责任链模式
责任链模式(Chain Of Responsibility):常见的行为模式,重点在“链”,由一条链去处理相似的请求,在链中决定谁来处理这个请求,并返回相应的结果Avoid coupling the sender of a request to its receiver by giving more than one object a chance to handle the request....原创 2018-10-23 21:05:28 · 101 阅读 · 0 评论 -
设计模式(Java随笔)—观察者模式
观察者模式(Observer Pattern):体现类之间一种一对多的关系,也叫发布—订阅模式,是一种在项目中经常使用的模式,如事件的多级触发,广播链等定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新。观察者模式的四个角色:抽象主题(Subject)角色:该角色又叫“被观察者”,可以增加和删除观察者对象,定义自身状态发生改变时对观察...原创 2018-10-29 21:30:29 · 126 阅读 · 0 评论 -
设计模式(Java随笔)—策略模式
策略模式(Strategy Pattern):比较简单的一种行为型模式,也叫政策模式,目的是用来封装算法,只要在分析过程中听到需要在不同的时间应用不同的业务规则,就可以考虑使用策略模式处理这种变化的可能性—(大话设计模式)Define a family of algorithms,encapsulate each one,and make them interchangeeable.定义一...原创 2018-10-24 22:33:38 · 129 阅读 · 0 评论 -
设计模式(Java随笔)—访问者模式
访问者模式(Visitor Pattern):算是GoF中最复杂的一个模式了,其目的是把处理从数据结构中分离出来,使用该模式的前提条件是数据结构稳定不变而处理易变。大多时候并不需要访问者模式,因为很难找到数据结构不变的情况封装一些作用于某种数据结构中的各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作访问者模式的五个角色:抽象元素(Element)角色:申明一个接...原创 2018-10-31 23:27:15 · 94 阅读 · 0 评论 -
设计模式(Java随笔)—中介者模式
中介者模式(Mediator Pattern):也叫调停者模式,是一种比较简单的模式,用于管理很多的对象的相互作用,以至于使这些对象可以专注于自身的行为,中介者模式很容易在系统中使用,也很容易误用。用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显示的相互引用,从而使其耦合松散,而且可以独立的改变他们之前的交互。中介者模式的四个角色:抽象中介者(Mediator)角色:定义同...原创 2018-10-27 22:07:39 · 191 阅读 · 0 评论 -
设计模式(Java随笔)—备忘录模式
备忘录模式(Memento Pattern):又叫快照模式或Token模式,通俗的说,备忘录模式就是将一个对象进行备份,提供一种程序数据的备份方法;在不破坏封装的前提下,捕获一个对象的内部状态,并在对象之外保存这个状态,这样,以后就可以将该对象恢复到原先保存的状态备忘录模式的三个角色:发起人(Originator)角色:该角色记录当前时刻的内部状态,负责定义哪些属于备份范围的状态,负责...原创 2018-10-30 22:31:32 · 133 阅读 · 0 评论 -
设计模式(Java随笔)—解释器模式
解释器模式(Interpreter Pattern):很少用到的一个模式,主要因为该模式的实现特别复杂且应用场景较少,所以很少人使用,当有一个简单的语言需要解释执行,并且可以将该语言的每一个规则表示为一个类时,就可以使用解释器模式Given a language,define a representation for its grammar along with an interpreter ...原创 2018-11-03 12:56:17 · 128 阅读 · 0 评论 -
设计模式(Java随笔)—状态模式
状态模式(State Pattern):又叫状态对象模式,该模式允许一个对象在其内部状态改变时改变其行为。状态模式的核心是封装,封装的变更引起行为的变动当一个对象的内在状态改变时允许改变其行为,这个对象看起来就像是改变了其类型状态模式的角色:抽象状态(State)角色:封装环境对象的一个特定状态所对应的行为 具体状态(Concrete State)角色:实现环境对象的一个特定状态所对...原创 2018-11-01 21:51:21 · 160 阅读 · 0 评论 -
设计模式(Java随笔)—装饰模式
装饰模式(Decorator Pattern):为已有功能动态地添加更多功能的一种方式Attach additional responsiblities to an object dynamically keeping the same interface. Decorator provide a flexible alternative to subclassing for extendin...原创 2018-10-10 20:48:04 · 155 阅读 · 1 评论 -
设计模式(Java随笔)—模板方法模式
模板方法模式(Template Method Pattern):是一种应用非常广泛的模式,去除子类中重复的代码,把不变的行为搬到超类去,更好的实现代码的复用模板方法模式的角色:抽象模板(Abstract Template)角色:定义一个或多个抽象操作,让子类去实现这些抽象操作(这叫基本操作),还需定义一个或多个模板方法,这些模板方法是具体的框架,实现对抽象方法的调度,完成固定的逻辑,让子类...原创 2018-10-16 17:06:19 · 179 阅读 · 0 评论 -
设计模式(Java随笔)—单例模式
单例模式(Singleton Pattern):5种创建型模式中的一种,有关单例模式的所有创建方法参考:Java单例模式——并非看起来那么简单(总结不易,感谢!),本文中,我只对开发中常用的两种(多线程)方法和Java特有的枚举法进行代码复写。首先,还是贴一下单例的定义吧: Ensure a class only has one instance,and provide a global ...转载 2018-10-04 18:59:48 · 127 阅读 · 0 评论 -
设计模式(Java随笔)—工厂模式
工厂模式(Factory Pattern)话不多说,先贴定义:Define an interface for creating an object,but let subclasses decide which class to instantiate.Factory Method lets a class defer instantiation to subclassess. ...原创 2018-10-04 19:55:57 · 121 阅读 · 0 评论 -
设计模式(Java随笔)—抽象工厂模式
抽象工厂模式(Abstract Factory Pattern):工厂方法模式的升级版本,当有多个业务品种,业务分类的时候使用。Provide an interface for creating families of related ro dependent objects without specifying their concrete classes.为创建一组相关或相互依赖的对象...原创 2018-10-05 18:50:51 · 112 阅读 · 0 评论 -
设计模式(Java随笔)—组合模式
组合模式(Composite Pattern)Compose objects into tree structures to represent part-whole hierarchies.Composite lets clients treat individual objects and compositions of objects uniformly.将对象组合成树形结构以表示“...原创 2018-10-12 21:10:52 · 140 阅读 · 0 评论 -
设计模式(Java随笔)—生成器模式
生成器模式(Builder Pattern):分离构建算法和具体的构造实现,从而使构建算法可以重用 Separate the construction of a complex object from its representation so that the same construction process can create different representations. ...原创 2018-10-07 17:21:47 · 258 阅读 · 0 评论 -
设计模式(Java随笔)—桥接模式
桥接模式(Bridge Pattern):不常用的设计模式,为了继承的缺点而提出来的设计模式,在此模式下,实现可以不受抽象的约束,将实现独立出来,实现对用户透明,通过桥梁的关系,将实现细节与抽象层通过聚合关系完成封装Decouple an abstraction from its implementation so that the two can vary independently.将...原创 2018-10-14 19:50:56 · 112 阅读 · 0 评论 -
设计模式(Java随笔)—外观模式
外观模式(Facade Pattern):也叫门面模式,是一种非常简单也比较常用的模式,不符合开—闭原则Provode a unified interface to a set of interfaces in a aubsystem.Facade defines a higher-level interface that makes the subsystem easier to use....原创 2018-10-14 20:17:39 · 104 阅读 · 0 评论 -
设计模式(Java随笔)—原型模式
原型模式(Prototype Pattern):诶呀,一种灰常简单的模式,就是要求对象实现一个可以“克隆”自身的接口,这样就可以通过复制一个实例对象本身来创建一个新的实例。只要实现了克隆自身的方法,就可以通过这个方法来获取新的对象,而无须再去通过new来创建。Specify the kinds of objects to create using a prototypical instance...原创 2018-10-08 20:19:07 · 99 阅读 · 0 评论 -
设计模式(Java随笔)—享元模式
享元模式(Flyweight Pattern):池技术的重要实现方式,可以降低大量重复的,细粒度的类在内存中的开销Use sharing to support large numbers of fine-grained objects efficiently.运用共享技术有效地支持大量细粒度的对象。掌握享元模式的关键在于区分内部状态和外部状态:内部状态:存储在享元对象内部的,可以共...原创 2018-10-15 21:43:46 · 162 阅读 · 0 评论 -
设计模式(Java随笔)—代理模式
代理模式(Proxy Pattern):也叫委托模式,是一个使用率非常高的模式,其本质就是在访问对象时引入一定程度的间接性,因为这种间接性,可以附加多种用途——代理就是真实对象的代表。Provide a surrogate ot placeholder for another object to control access to it.为其他对象提供一种代理以控制对这个对象的访问。代...原创 2018-10-09 23:38:13 · 100 阅读 · 0 评论 -
设计模式(Java随笔)—六大设计原则
一、单一职责原则(提倡高内聚)定义:一个类,应当只有一个引起它变化的原因;即一个类应该只有一个职责。就一个类而言,应该只专注于做一件事且仅有一个引起它变化的原因,该职责提出了对对象职责的一种理想期望,对象不应该承担太多职责,正如人不该一心分为二用。唯有专注,才能保证对象的高内聚;唯有单一,才能保证对象的细粒度。对象的高内聚和细粒度有利于对象的重用。优点:降低类的复杂性 提高类的可...原创 2019-07-20 17:12:31 · 182 阅读 · 0 评论