
设计模式
设计模式
Damon_zqt
心累,因为常常徘徊在坚持和放弃之间,举棋不定。烦恼,因为记性太好,该记的,不该记的都会留在记忆里。痛苦,因为追求的太多。难过,因为计较的太多
展开
-
解释器模式
解释器模式(Interpreter Pattern):定义一个语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子。(Given a language, define are presentation for its grammar along with an interpreter that uses there presentation to interpre...原创 2020-04-26 13:55:05 · 140 阅读 · 0 评论 -
访问者模式
访问者模式(Visitor Pattern):表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素类别的前提下定义作用于这些元素的新操作。(Represent an operation to be performedon the elements of an object structure. Visitor lets you define a new operation with...原创 2020-04-26 13:55:17 · 143 阅读 · 0 评论 -
备忘录模式
备忘录模式(Memento Pattern):在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保持该状态,这样以后就可以将该对象恢复到保存的状态。(Without violating encapsulates, capture and externalize an object’s internal state so that the object can be restored ...原创 2020-04-26 13:50:47 · 120 阅读 · 0 评论 -
命令模式
命令模式(Command Pattern):将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可取消的操作。(Encapsulate a request as an object,thereby letting you parameterize clients with different requests, queue or log reque...原创 2020-04-26 13:45:20 · 157 阅读 · 0 评论 -
责任链模式
责任链模式(Chain of Responsibility Pattern):为解除请求的发送者和接收者之间的耦合,而使多个对象都有机会处理这个请求。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它。(Avoid coupling the sender of a requestits receiver by giving more than one object a chance ...原创 2020-04-26 13:39:15 · 225 阅读 · 0 评论 -
中介者模式
中介者模式(Mediator Pattern):用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显示地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。(Define an object that encapsulates how a set of objects interact. Mediator promotes loose coupling by keeping o...原创 2020-04-26 13:30:05 · 128 阅读 · 0 评论 -
状态模式
状态模式(State Pattern):允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它所属的类。(Allow an object to alter its behavior when its internal state changes. The object will appear to change its class.)核心:用于解决系统中 复杂对象的状态转换 以及不...原创 2020-04-26 13:19:33 · 176 阅读 · 0 评论 -
迭代器模式
迭代器模式(Iterator Pattern):提供一种方法顺序访问一个聚合对象中各个元素,而又不需暴露该对象的内部表示。(Provide a way to access the elements of an aggregate object sequentially without exposing its underlying representation.)开发中常见的场景:JDK内置...原创 2020-04-26 13:10:52 · 129 阅读 · 0 评论 -
享元模式
享元模式(Flyweight Pattern):运用共享技术有效地支持大量细粒度的对象。(Use sharing to support large numbers offine-grained objects efficiently.)享元模式核心:享元模式以共享的方式高效地支持大量细粒度对象的重用。享元对象能做到共享的关键是区分了内部状态和外部状态。• 内部状态:可以共享,不会随环境变...原创 2020-04-25 17:21:37 · 150 阅读 · 0 评论 -
组合模式
组合模式(Composite Pattern):将对象组合成树形结构以表示“部分-整体”的层次结构。Composite 使得客户对单个对象和复合对象的使用具有一致性。(Compose object into tree structures torepresent part-whole hierarchy. Composite lets clients treat individual objec...原创 2020-04-25 17:09:38 · 181 阅读 · 0 评论 -
桥接模式
桥接模式(Bridge Pattern) :将抽象部分与它的实现部分分离,使他们都可以独立地变化。(Decouple an abstraction from its implementation so that the two can vary independently.)就像一个桥,将两个变化维度连接起来。各个维度都可以独立的变化。故称之为:桥接模式核心要点 : 处理多层继承结构,处理多...原创 2020-04-25 16:56:48 · 174 阅读 · 0 评论 -
观察者模式
观察者模式(Observer Pattern):定义对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动刷新。(Define a one-to-many dependency between objects so that when one object changes state all its dependents are notified and...原创 2020-04-25 15:56:24 · 212 阅读 · 0 评论 -
策略模式
策略模式(Strategy Pattern):定义一系列的算法,把它们一个个封装起来,并且使他们可相互替换。本模式使得算法的变化可以独立于使用它的客户。(Define a family of algorithms,encapsulate each one and make them interchangeable.Strategy lets the algorithmvary independe...原创 2020-04-25 14:52:18 · 183 阅读 · 0 评论 -
模板方法
模版方法模式(Template Pattern):定义一个操作中的算法的骨架,而将一些步骤延迟到子类。TemplateMethod 使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。(Define the skeleton of an algorithm inan operation, deferring some steps to subclasses. Template Met...原创 2020-04-25 14:35:28 · 135 阅读 · 0 评论 -
装饰模式
装饰器模式也成为包装模式,顾名思义,就是对已经存在的某些类进行装饰,以此来扩展一些功能。装饰模式是一种用于提代继承的技术,无需通过子类增加继承就能拓展对象的新功能;使用对象的关联关系提代继承关系,更加灵活,同时避免类型体系的快速膨胀。其结构图如下:Component为统一接口,也是装饰类和被装饰类的基本类型。ConcreteComponent为具体实现类,也是被装饰类,他本身是个具有一些功...原创 2020-04-25 12:14:19 · 391 阅读 · 0 评论 -
外观模式
外观模式(Facade Pattern)门面模式,隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。使得客户端和子系统之间解耦,让子系统内部的模块功能更容易扩展和维护;开发中常见的场景 :应用频率很高。哪里...原创 2020-04-25 11:53:52 · 167 阅读 · 0 评论 -
适配模式
适配器模式(Adapter Pattern):将一个类的接口转换成客户希望的另一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。(Convert the interface of a class into another interface clients except. Adapter lets classes work together that coul...原创 2020-04-24 16:49:33 · 163 阅读 · 0 评论 -
代理模式
代理模式可以详细控制访问某个(某类)对象的方法,在调用这个方法前做前置处理,调用这个方法后做后置处理。分类:静态代理(静态定义代理类)静态代理:静态代理在使用时,需要定义接口或者父类,被代理对象与代理对象一起实现相同的接口或者是继承相同父类。由程序员创建或工具生成代理类的源码,再编译代理类。所谓静态也就是在程序运行前就已经存在代理类的字节码文件,代理类和委托类的关系在运行前就确定了。动态...原创 2020-04-24 16:09:49 · 301 阅读 · 0 评论 -
原型模式
原型模式绕过构造方法创建对象,利用内存直接拷贝对象,提高对象的创建性效率。在有大量的对象创建或者类初始化消耗多资源的场景下可以利用原型模式来优化。当然在实现的过程中,要注意浅拷贝与深拷贝的问题,防止写出 bug。浅拷贝和深拷贝 :浅拷贝(浅克隆) :浅复制仅仅复制所考虑的对象,而不复制它所引用的对象。深拷贝(深克隆) :深复制把要复制的对象所引用的对象都复制了一遍。可以利用串行化来做深复...原创 2020-04-24 11:30:02 · 179 阅读 · 0 评论 -
建造模式
建造模式的本质:List item分离了对象子组件的单独构造(由Builder来负责)和装配(由Director负责)。 从而可以构造出复杂的对象。这个模式适用于:某个对象的构建过程复杂的情况下使用。由于实现了构建和装配的解耦。不同的构建器,相同的装配,也可以做出不同的对象;相同的构建器,不同的装配顺序也可以做出不同的对象。也就是实现了构建算法、装配算法的解耦,实现了更好的复用。建造者模式...原创 2020-04-24 11:04:32 · 829 阅读 · 0 评论 -
工厂模式
工厂模式(Factory Pattern)实现了创建者和调用者分离工厂模式,也叫作静态工厂模式,顾名思义,就是用来生产对象的,在java中,万物皆对象,这些对象都需要创建,如果创建的时候直接new该对象,就会对该对象耦合严重,假如我们要更换对象,所有new对象的地方都需要修改一遍,这显然违背了软件设计的开闭原则,如果我们使用工厂来生产对象,我们就只和工厂打交道就可以了,彻底和对象解耦,如果要更...原创 2020-04-24 09:48:12 · 171 阅读 · 0 评论 -
单例模式
常见应用场景:1、Windows的Task Manager(任务管理器)就是很典型的单例模式,windows的Recycle Bin(回收站)也是典型的单例应用。在整个系统运行过程中,回收站一直维护着仅有的一个实例。2、项目中,读取配置文件的类,一般也只有一个对象。没有必要每次使用配置文件数据,每次new一个对象去读取。3、网站的计数器,一般也是采用单例模式实现,否则难以同步。4、应用程序...原创 2020-04-23 13:24:07 · 264 阅读 · 0 评论 -
设计模式概述
设计模式概述(Design pattern)设计模式:代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠...原创 2020-04-23 11:23:17 · 231 阅读 · 0 评论