![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
_渔歌向晚
后端程序员、跑者
展开
-
Java策略模式
Strategy模式也叫策略模式,是行为模式之一,它对一系列的算法加以封装,为所有算法定义一个抽象的算法接口,并通过继承该抽象算法接口对所有的算法加以封装和实现,具体的算法选择交由客户端决定(策略)。Strategy模式主要用来平滑地处理算法的切换。主要解决:在有多种算法相似的情况下,使用if...else所带来的复杂和难以维护。当一个系统有许多许多类,而区分它们的只是他们直接的行为。可以将这些...原创 2018-03-19 01:42:13 · 469 阅读 · 0 评论 -
java设计模式之状态模式
状态模式,是行为设计模式的一种。State模式允许通过改变对象的内部状态而改变对象的行为,这个对象表现得就好像修改了它的类一样。在状态模式中,我们创建表示各种状态的对象和一个行为随着状态对象改变而改变的 context 对象。解决问题: 对象的行为依赖于它的状态(属性),并且可以根据它的状态改变而改变它的相关行为。主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况。把状态...原创 2018-04-06 17:05:05 · 146 阅读 · 0 评论 -
java设计模式之备忘录模式
备忘录模式,是行为模式之一,它的作用是保存对象的内部状态,并在需要的时候(undo/rollback)恢复对象以前的状态。解决问题: 所谓备忘录模式就是在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态。使用场景: 如果一个对象需要保存状态并可通过undo或rollback等操作恢复到以前的状态时,可以使用Meme...原创 2018-04-06 15:59:59 · 158 阅读 · 0 评论 -
java设计模式之模板方法模式
模板方法模式,是行为模式之一,它把具有特定步骤算法中的某些必要的处理委让给抽象方法,通过子类继承对抽象方法的不同实现改变整个算法的行为。定义一个操作中的算法框架,而将一些步骤延迟到子类中,使得子类不改变算法的结构即可重复定义算法的某些特点步骤。应用场景: - 具有统一的操作步骤或操作过程 - 具有不同的操作细节 - 存在多个具有同样操作步骤的应用场景,但某些具体的操作细节...原创 2018-04-06 14:47:03 · 171 阅读 · 0 评论 -
Java设计模式之迭代模式
Iterator模式也叫迭代模式,是行为模式之一,它把对容器中包含的内部对象的访问委让给外部类,使用Iterator(遍历)按顺序进行遍历访问的设计模式。提供一种方法顺序的访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。 一般情况,我们自己开发时很少自定义迭代器,因为java本身已经把迭代器做到内部中了(比如:常用的list和set中都内置了迭代器)。当然,如果真有这种需求需...原创 2018-04-06 01:48:57 · 874 阅读 · 0 评论 -
java设计模式之中介者模式
Mediator模式也叫中介者模式,是行为模式之一,在Mediator模式中,类之间的交互行为被统一放在Mediator的对象中,对象通过Mediator对象同其他对象交互,Mediator对象起着控制器的作用。中介者模式包装了一系列对象相互作用的方式,使得这些对象不必相互明显作用。从而使它们可以松散耦合。当某些对象之间的作用发生改变时,不会立即影响其他的一些对象之间的作用。保证这些作用可...原创 2018-04-03 21:03:53 · 121 阅读 · 0 评论 -
java设计模式之桥接模式
定义: 桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。 这种模式涉及到一个作为桥接的接口,使得实体类的功能独立于接口实现类。这两种类型的类可被结构化改变而互不影响。Bridge模式基于类的最小设计原则,通过使用封装,聚合以及继承等行为来让不同的类承担不同的责任。它...原创 2018-03-28 02:35:25 · 227 阅读 · 0 评论 -
java设计模式之适配器模式
适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。 这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。举个真实的例子,读卡器是作为内存卡和笔记本之间的适配器。您将内存卡插入读卡器,再将读卡器插入笔记本,这样就可以通过笔记本来读取内存卡。解决问题:主要解决在软件系统中,常常要将一些...原创 2018-03-27 01:21:57 · 233 阅读 · 0 评论 -
java设计模式之责任链模式
Chain ofResponsibility(CoR)模式也叫职责链模式或者职责连锁模式,是行为模式之一,该模式构造一系列分别担当不同的职责的类的对象来共同完成一个任务,这些类的对象之间像链条一样紧密相连,所以被称作职责链模式。 这种模式给予请求的类型,对请求的发送者和接收者进行解耦。在这种模式中,通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的...原创 2018-04-02 01:34:08 · 172 阅读 · 0 评论 -
java设计模式之解释器模式
解释器模式(InterpreterPattern)提供了评估语言的语法或表达式的方式,它属于行为型模式。这种模式实现了一个表达式接口,该接口解释一个特定的上下文。这种模式被用在 SQL 解析、符号处理引擎等。简单地说,Interpreter模式是一种简单的语法解释器构架。解决问题:对于一些固定文法构建一个解释句子的解释器。解决方式: 构件语法树,定义终结符与非终结符。构件环境类,包含...原创 2018-04-01 01:29:48 · 370 阅读 · 0 评论 -
java设计模式之代理模式
代理模式(Proxy),是构造型的设计模式之一,为其他对象提供一种代理以控制对这个对象的访问。 所谓代理,是指具有与代理元(被代理的对象)具有相同的接口的类,客户端必须通过代理与被代理的目标类交互,而代理一般在交互的过程中(交互前后),进行某些特别的处理。解决问题: 在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在面向对象系统中,有些对象由于某些原因(比如对象...原创 2018-03-25 17:37:57 · 471 阅读 · 1 评论 -
java设计模式之访问者模式
访问者模式(Visitor),是行为模式之一,它分离对象的数据和行为,使用Visitor模式,可以不修改已有类的情况下,增加新的操作。根据模式,元素对象已接受访问者对象,这样访问者对象就可以处理元素对象上的操作。解决问题: 稳定的数据结构和易变的操作耦合问题。访问者可以对功能进行统一,可以做报表、UI、拦截器与过滤器。使用场景: (1)对象结构比较稳定,但经常需要在此对象结构...原创 2018-04-07 15:32:19 · 150 阅读 · 0 评论 -
观察者模式
Observer模式是行为模式之一,它的作用是当一个对象的状态发生变化时,能够自动通知其他关联对象,自动刷新对象状态。Observer模式提供给关联对象一种同步通信的手段,使某个对象与依赖它的其他对象之间保持状态同步。当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知它的依赖对象。解决问题:一个对象状态改变给其他对象通知的...原创 2018-03-19 02:23:00 · 273 阅读 · 0 评论 -
java设计模式之命令模式
命令模式(Command) ,是行为设计模式的一种。Command模式通过被称为Command的类封装了对目标对象的调用行为以及调用参数。请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。解决问题: 在软件系统中,行为请求者与行为实现者通常是一种紧耦合的关系,但某些场合,比如需要对行为进行记录、撤销或重做、...原创 2018-04-06 18:19:37 · 153 阅读 · 0 评论