设计模式
rocketeerLi
自由地努力着
展开
-
Java设计模式之命令模式(Command Pattern)
介绍命令模式是一种行为型设计模式,它是降低类之间耦合度的一种方式。命令模式中,将每个具体操作封装成一个个命令,调用者只需要发出特定的命令即可实现相应的功能。各个命令类会自动找到实现这个功能的对象并调用它们的方法。下面先来看一下命令模式的定义: Encapsulate a request as an object, thereby letting you parameterize c...原创 2018-08-17 02:17:44 · 318 阅读 · 0 评论 -
Java设计模式之状态模式(State Pattern)
介绍状态模式是一种行为型设计模式。当对象在不同状态下有不同行为时使用,在该模式中,我们将对象的不同状态 定义成不同的类,在这些状态类下有它们各自的行为,然后利用环境类使客户端在调用时,不需要显示地去设置状态之间的转换。下面先来看一下它的定义: Allow an object to alter its behavior when its internal state changes...原创 2018-08-27 17:31:52 · 1126 阅读 · 0 评论 -
Java设计模式之访问者模式(Visitor Pattern)
介绍访问者模式是一种行为型设计模式,该模式的核心是访问者根据不同的具体类执行不同的方法。这里的具体类一般是一个容器内的不同类,例如,一个公司下的不同职员。所有的具体类都要实现接收访问者访问的方法,然后访问者根据传进来的具体类来判断执行那个方法。先看一下访问者模式的定义: Represent an operation to be performed on the elements o...原创 2018-08-27 21:54:14 · 311 阅读 · 0 评论 -
Java设计模式之观察者模式(Observer Pattern)
介绍观察者模式是一种行为型设计模式,也叫做发布订阅模式(Publish/subcribe)。当一个对象发生改变时,多个对象需要得到通知,这个时候就需要利用观察者模式来实现。先看一下它的定义: Define a one-to-many dependency between objects so that when one object changes state, all its d...原创 2018-08-23 20:07:34 · 295 阅读 · 0 评论 -
Java设计模式之外观模式(Facade Pattern)
介绍外观模式也叫做门面模式,是一种结构型设计模式。它将一系列的类封装起来,避免其他类直接访问这些类,如果要访问这些类,必须经过这个封装的类。这个封装的类就相当于这系列类的门面一样。下面先来看一下外观模式的定义: Provide a unified interface to a set of interfaces in a subsystem. Facade defines a hi...原创 2018-08-24 13:05:55 · 459 阅读 · 3 评论 -
Java设计模式之备忘录模式(Memento Pattern)
介绍备忘录模式是一种行为型设计模式。它可以保存一个对象的状态,在需要的时候对其进行恢复,相当于键盘上的 ctrl + z。 下面先看一下它的定义: Without violating encapsulation, capture and externalize an object’s internal state so that the object can be restored...原创 2018-08-24 14:51:51 · 596 阅读 · 1 评论 -
Java设计模式之解释器模式(Interpreter Pattern)
介绍解释器模式是一种行为型设计模式,该模式主要目的是解析一串固定模式的表达式。解释器模式与命令模式比较相似,通常利用该模式解析语法树。下面先来看一下它的定义: Given a language, define a representation for its grammar along with an interpreter that uses the representation...原创 2018-08-28 19:04:39 · 249 阅读 · 0 评论 -
Java设计模式之组合模式(Composite Pattern)
介绍组合模式是一种结构型设计模式。它一般是 用来创建树状的结构,表示“部分-整体”的层次关系。由于该模式使用的是对象组合的方式来实现的,区别于继承的方式,因此也叫做合成模式。先来看一下它的定义: Compose objects into tree structures to represent part-whole hierarchies. Composite lets clien...原创 2018-08-21 16:08:11 · 595 阅读 · 0 评论 -
Java设计模式之享元模式(Flyweight Pattern)
介绍享元模式是一种结构型设计模式。该模式主要是通过将对象的粒度细分,从而减少创建大量对象所占的内存。下面先来看一下它的定义: Use sharing to support large numbers of fine-grained objects efficiently. 使用共享对象可有效地支持大量的细粒度的对象。享元模式将一个对象分为内部状态和外部状态。所谓内部状态...原创 2018-09-03 11:08:25 · 276 阅读 · 0 评论 -
Java设计模式之桥接模式(Bridge Pattern)
介绍桥接模式也叫桥梁模式,是一种结构型设计模式。主要目的是实现类与类之间的解耦。先来看一下它的定义: Decouple an abstraction from its implementation so that the two can vary independently. 将抽象和实现解耦,使得二者可以独立地变化。桥接模式的目的还是很清楚的,就是为了解耦。而且该模式...原创 2018-09-03 17:23:35 · 243 阅读 · 0 评论 -
Java设计模式之迭代器模式(Iterator Pattern)
介绍迭代器模式是一种行为型设计模式,它是我们经常使用的一个设计模式,但是基本上不会单独写一个迭代器,大都使用的是 Java 语言内置的迭代器。可以说这是一个融入 Java 语言的设计模式,不止 Java ,其他很多语言都会内置这个模式。下面来看它的定义: Provide a way to access the elements of an aggregate object sequ...原创 2018-09-03 19:24:49 · 273 阅读 · 0 评论 -
Java设计模式之中介者模式(Mediator Pattern)
介绍中介者模式是一种行为型设计模式,它是降低类与类之间耦合度的有效方式。一般在多个类之间有紧密联系的时候使用。先来看一下它的定义: Define an object that encapsulates how a set of objects interact. Mediator promotes loose coupling by keeping objects from ref...原创 2018-08-17 00:45:42 · 254 阅读 · 0 评论 -
Java设计模式之策略模式(Strategy Pattern)
介绍策略模式属于行为型设计模式。它将各个算法封装起来,可以让调用者在运行时动态选择自己所需要的算法。首先来看一下它的定义: Define a family of algorithms, encapsulate each one, and make them interchangeable. 定义一组算法,将每个算法都封装起来,并且使它们之间可以互换。策略模式中,利用一个...原创 2018-08-19 12:29:39 · 343 阅读 · 0 评论 -
Java设计模式之原型模式(Prototype Pattern)
介绍原型模式属于创建型设计模式,它为对象提供了一种新的创建方式——使用 clone() 方法。通过该方法对对象进行拷贝。被拷贝的对象需要实现 Cloneable 接口,该接口中没有任何方法,实现该接口仅仅是告诉 Java 这个对象是可能被拷贝的,并不表示可以被拷贝。如果要表示可以被拷贝,还需要重写 Object 类中的 clone() 方法,重写之后,就可以使用 clone() 方法进行对...原创 2018-08-16 17:23:54 · 395 阅读 · 0 评论 -
Java设计模式之装饰器模式(Decorator pattern)
介绍给对象添加方法的方式有多种,通常,当说到给对象添加方法时,最直接的就是直接在该对象的类中增加新的方法,但这样在最上方增加方法,不仅更改了原来的代码结构,还会让代码看起来十分臃肿;然后,我们就能想到继承,直接新增加一个类来继承,在子类中添加方法,然而这样做并不够灵活,而且在不断增加方法时,还会出现多重继承的现象,导致代码结构很乱;那么,这时候就需要另一种方式了,这种方式就是组合的方式。关...原创 2018-08-10 14:29:44 · 282 阅读 · 0 评论 -
Java设计模式之常见的单例模式(Singleton pattern)
介绍单例模式是设计模式当中十分常见的一种。它是用来干嘛的呢?简单地说,当某个类创建的对象在整个程序中只有一个时,就可以使用它。在单例模式中,类的构造器是私有的,即你不能通过调用这个类的构造器来创建该类的实例。 作用那么你可能会问,单例模式用于解决什么问题呢?创建的对象保证只有一个,有什么用呢?如果你认为没用那就大错特错了。节省运行资源最直接的作用,就是当程...原创 2018-08-10 14:32:58 · 167 阅读 · 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 subclas...原创 2018-08-14 21:21:15 · 510 阅读 · 0 评论 -
Java设计模式之抽象工厂模式(Abstract Factory Pattern)
介绍抽象工厂模式总结原创 2018-08-15 00:21:46 · 242 阅读 · 0 评论 -
设计模式六大原则——SOLID
SOLID设计模式的六大原则有:Single Responsibility Principle:单一职责原则Open Closed Principle:开闭原则Liskov Substitution Principle:里氏替换原则Law of Demeter:迪米特法则Interface Segregation Principle:接口隔离原则Dependence Inver...原创 2018-08-12 20:34:32 · 16066 阅读 · 5 评论 -
Java设计模式之责任链模式(Chain of Responsibility Pattern)
介绍责任链模式是一种行为型设计模式,该模式是降低请求者和处理者之间耦合度的解决方案。一个请求者可能对应多个处理者,不同的请求也需要不同的处理者去处理,但是一个请求者如果要持有多个处理者的对象,耦合度未免太高了。而责任链模式就是解决这种问题的。首先看一下它的定义: Avoid coupling the sender of a request to its receiver by gi...原创 2018-08-17 22:09:13 · 267 阅读 · 0 评论 -
Java设计模式之模板方法模式(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`...原创 2018-08-15 22:44:42 · 1128 阅读 · 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-08-16 01:31:29 · 347 阅读 · 0 评论 -
Java设计模式之适配器模式(Adapter Pattern)
介绍适配器模式是一种结构型设计模式。该模式的主要功能是将一个类与另一个类的接口匹配起来,使得这两个类最后都实现同一个接口。先来看一下它的定义: Convert the interface of a clss into another interface clients expect. Adapter lets classes work together that couldn`t ...原创 2018-08-18 21:35:12 · 241 阅读 · 0 评论 -
Java设计模式之代理模式(Proxy Pattern)
介绍 Provide a surrogate or placeholder for another object to control access to it. 为其他对象提供一种代理以控制对这个对象的访问。普通代理模式强制代理模式动态代理模式总结...原创 2018-08-16 12:39:27 · 249 阅读 · 0 评论 -
23种设计模式
设计模式六大原则——SOLID设计模式的六大原则有:Single Responsibility Principle:单一职责原则 一个类只负责一个职责。Open Closed Principle:开闭原则 一个软件实体,如类、模块和函数应该对扩展开放,对修改关闭。Liskov Substitution Principle:里氏替换原则 所有引用基类的地方必须能透明地使用其子类的...原创 2018-09-03 22:35:55 · 228 阅读 · 0 评论