
设计模试
shumeigang
这个作者很懒,什么都没留下…
展开
-
状态模式
状态模式在状态模式(State Pattern)中,类的行为是基于它的状态改变的。这种类型的设计模式属于行为型模式。在状态模式中,我们创建表示各种状态的对象和一个行为随着状态对象改变而改变的 context 对象。当一个对象内在状态改变时允许其改变行为,这个对象看起来像改变了其类介绍意图:允许对象在内部状态发生改变时改变它的行为,对象看起来好像修改了它的类。主要解决:对象的行为依赖于它的状态(属性),并且可以根据它的状态改变而改变它的相关行为。何时使用:代码中包含大量与对象状态有原创 2020-07-23 15:44:18 · 103 阅读 · 0 评论 -
访问者模式
访问者模式在访问者模式(Visitor Pattern)中,我们使用了一个访问者类,它改变了元素类的执行算法。通过这种方式,元素的执行算法可以随着访问者改变而改变。这种类型的设计模式属于行为型模式。根据模式,元素对象已接受访问者对象,这样访问者对象就可以处理元素对象上的操作。访问者模式是一种将数据操作和数据结构分离的设计模式。介绍意图:主要将数据结构与数据操作分离。主要解决:稳定的数据结构和易变的操作耦合问题。何时使用:需要对一个对象结构中的对象进行很多不同的并且不相关的操作,而需.原创 2020-07-22 17:54:31 · 128 阅读 · 0 评论 -
观察者模式
观察者模式当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知依赖它的对象。观察者模式属于行为型模式。介绍意图:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。主要解决:一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,保证高度的协作。何时使用:一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知,进行广播通知。关键代码:在抽原创 2020-07-22 15:49:42 · 113 阅读 · 0 评论 -
备忘录模式
备忘录模式(Memento Pattern)定义:Without violating encapsulation,capture and externalize an object's internal state so that the object can be restored to this state later.(在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。)● Originator发起人角色记录当前时刻的内部原创 2020-07-21 16:36:03 · 145 阅读 · 0 评论 -
享元模式
享元模式享元模式(Flyweight Pattern)主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式。介绍意图:运用共享技术有效地支持大量细粒度的对象。面向对象技术可以很好地解决一些灵活性或可扩展性问题,但在很多情况下需要在系统中增加类和对象的个数。当对象数量太多时,将导致运行代价过高,带来性能下降等问题。享元模式正是为解决这一类问题而诞生的在享元模式中可以共享的相同内容称为 内部状态(Intr原创 2020-07-20 17:05:53 · 123 阅读 · 0 评论 -
外观模式
外观模式外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。外观模式又称之为门面模式介绍意图:为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。主要解决:降低访问复杂系统的内部子系统时的复杂度,简化客户端与之的接原创 2020-07-20 16:56:01 · 101 阅读 · 0 评论 -
组合模式
组合模式((Composite Pattern))定义:Compose objects into tree structures to represent part-whole hierarchies.Composite lets clients treat individual objects and compositions of objects uniformly.(将对象组合成树形结构以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。)● Component.原创 2020-07-16 17:20:07 · 99 阅读 · 0 评论 -
桥接模式
模式定义桥接模式即将抽象部分与它的实现部分分离开来,使他们都可以独立变化。桥接模式将继承关系转化成关联关系,它降低了类与类之间的耦合度,减少了系统中类的数量,也减少了代码量。将抽象部分与他的实现部分分离这句话不是很好理解,其实这并不是将抽象类与他的派生类分离,而是抽象类和它的派生类用来实现自己的对象。这样还是不能理解的话。我们就先来认清什么是抽象化,什么是实现化,什么是脱耦。抽象化:其概念是将复杂物体的一个或几个特性抽出去而只注意其他特性的行动或过程。在面向对象就是将对象共同的性质抽取出去.原创 2020-07-15 19:15:11 · 152 阅读 · 0 评论 -
解释器模式
解释器模式(Interpreter Pattern)(少用)定义:Given a language, define a representation for its grammar along with an interpreter that uses the representation to interpret sentences in the language.(给定一门语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子。)● AbstractExpre.原创 2020-07-15 17:16:49 · 116 阅读 · 0 评论 -
迭代器模式
迭代器模式(Iterator Pattern)定义:Provide a way to access the elements of an aggregate object sequentially without exposing its underlying representation.(它提供一种方法访问一个容器对象中各个元素,而又不需暴露该对象的内部细节。)● Iterator抽象迭代器抽象迭代器负责定义访问和遍历元素的接口,而且基本上是有固定的3个方法:first()获得第一个元素,n原创 2020-07-09 15:37:11 · 93 阅读 · 0 评论 -
适配器模式
适配器模式(Adapter Pattern)定义:Convert the interface of a class into another interface clients expect.Adapter lets classes work together that couldn't otherwise because of incompatible interfaces.(将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。)类适配器:原创 2020-07-09 10:48:12 · 93 阅读 · 0 评论 -
策略模式
策略模式(Strategy Pattern)定义:Define a family of algorithms,encapsulate each one,and make them interchangeable.(定义一组算法,将每个算法都封装起来,并且使它们之间可以互换。)● Context封装角色它也叫做上下文角色,起承上启下封装作用,屏蔽高层模块对策略、算法的直接访问,封装可能存在的变化。● Strategy抽象策略角色策略、算法家族的抽象,通常为接口,定义每个策略或算法必须.原创 2020-07-09 09:48:24 · 112 阅读 · 0 评论 -
装饰模式
原型模式(Prototype Pattern)定义:Specify the kinds of objects to create using a prototypical instance,and create new objects by copying this prototype.(用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。)...原创 2020-06-23 16:58:58 · 94 阅读 · 0 评论 -
责任链模式
责任链模式定义:Avoid coupling the sender of a request to its receiver by giving more than one object a chance to handle the request.Chain the receiving objects and pass the request along the chain until an object handles it.(使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系原创 2020-06-15 17:43:37 · 138 阅读 · 0 评论 -
命令模式
命令模式定义:Encapsulate a request as an object,thereby letting you parameterize clients with different requests,queue or log requests,and support undoable operations.(将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。)● Receive接收者角色该角色就是干活的角色,命原创 2020-06-15 15:48:28 · 122 阅读 · 0 评论 -
中介者模式
中介者模式定义:Define an object that encapsulates how a set of objects interact.Mediator promotes loose coupling by keeping objects from referring to each other explicitly,and it lets you vary their interaction independently.(用一个中介对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用原创 2020-06-12 14:45:56 · 118 阅读 · 0 评论 -
原型模式
原型模式(Prototype Pattern)定义:Specify the kinds of objects to create using a prototypical instance,and create new objects by copying this prototype.(用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。)原型模式通用代码:public class PrototypeClass implements Cloneable{ //覆.原创 2020-06-12 09:35:20 · 97 阅读 · 0 评论 -
代理模式
代理模式(Proxy Pattern)定义:Provide a surrogate or placeholder for another object to control access to it.(为其他对象提供一种代理以控制对这个对象的访问。一个类代表另一个类的功能。这种类型的设计模式属于结构型模式)主要解决:在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或者某些操作需要安全控制,或者需要进程外的访问),直接访问会原创 2020-06-11 16:46:44 · 176 阅读 · 0 评论 -
建造者模式
建造者模式(Builder Pattern)定义:Separate the construction of a complex object from its representation so that the same construction process can create different representations.(将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。)● Product产品类通常是实现了模板方法模式,也就是有模板方法和基本方法,例子原创 2020-06-09 19:56:54 · 121 阅读 · 0 评论 -
模板模式
模板方法模式(Template Method Pattern)定义:Define the skeleton of an algorithm in an operation,deferring some steps to subclasses.Template Method lets subclasses redefine certain steps of an algorithm without changing the algorithm's structure.(定义一个操作中的算法的框架,而将一些原创 2020-06-09 19:46:47 · 117 阅读 · 0 评论 -
抽象工厂模式
(Abstract Factory Pattern)定义:Provide an interface for creating families of related or dependent objects without specifying their concrete classes.(为创建一组相关或相互依赖的对象提供一个接口,而且无须指定它们的具体类。)抽象工厂模式通用类图:抽象工厂模式通用源码类图:抽象工厂类代码:(1)创建相关接口:public class Pro原创 2020-06-01 19:58:54 · 109 阅读 · 0 评论 -
工厂模式
工厂模式概述: 工厂模式具体包括了简单工厂、工厂方法、抽象工厂,它们是按照从简单到复杂的顺序排列的,属于设计模式中的创建型,其中简单工厂并不属于GOF的23中模式。但是它是理解其它的工厂模式的一个很好的基础,所以很多人在讲述设计模式的时候会提到简单工厂模式。创建型模式关注的是对象的创建,创建型模式将创建对象的过程进行了抽象,也可以理解为将创建对象的过程进行了封装,作为客户程序仅仅需要去使用对象,而不再关心创建对象过程中的逻辑。定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类。..原创 2020-06-01 19:09:49 · 128 阅读 · 0 评论 -
单例模式
单例模式(Singleton Pattern)定义:确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。模式要求:一个类有且仅有一个实例,并且提供了一个全局的访问点通用代码:(是线程安全的)1)饿汉式(线程安全,调用效率高。但是,不能延时加载。)public class Singleton { private static final Singleton singleton = new Singleton();//限制产生多个对象 private原创 2020-06-01 18:16:55 · 294 阅读 · 0 评论