![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java 设计模式
齐墨
这个作者很懒,什么都没留下…
展开
-
设计模式-适配器模式
设计模式-适配器模式介绍意图:主要解决:何时使用:如何解决:关键代码:应用实例:优点:缺点:实例适配器的权衡缺省适配模式的结构介绍结构型模式是将系统中的多个类或对象组合在一起,相互协作来完成更复杂的任务或功能。就好比搭积木,许多简单积木可以搭建成更复杂、功能更强大的结构。它分为两种形式:类结构型模式和对象结构型模式。类结构型模式由多个类组合,存在继承和实现关系;对象结构型模式由类和对象组合,存...原创 2019-01-20 20:47:19 · 131 阅读 · 0 评论 -
设计模式-桥接模式
设计模式-桥接模式介绍意图:主要解决:何时使用:如何解决:关键代码:优点:缺点:使用场景:下图是桥接模式的UML结构图:在桥接模式结构图中包含如下几个角色:实例介绍意图:将抽象部分与实现部分分离,使它们都可以独立的变化。主要解决:在有多种可能会变化的情况下,用继承会造成类爆炸问题,扩展起来不灵活。何时使用:实现系统可能有多个角度分类,每一种角度都可能变化。如何解决:把这种多角度分...原创 2019-01-20 20:54:19 · 141 阅读 · 0 评论 -
设计模式-组合模式
设计模式-组合模式介绍意图:主要解决:何时使用:如何解决:关键代码:应用实例:优点:缺点:使用场景:注意事项:两种组合模式透明组合模式安全组合模式介绍意图:将对象组合成树形结构以表示"部分-整体"的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。主要解决:它在我们树型结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以向处理简单元素一样来处理复杂元素,从而使得客户程...原创 2019-01-20 21:01:09 · 92 阅读 · 0 评论 -
设计模式-责任链模式
责任链模式意图:避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。主要解决:职责链上的处理者负责处理请求,客户只需要将请求发送到职责链上即可,无须关心请求的处理细节和请求的传递,所以职责链将请求的发送者和请求的处理者解耦了。何时使用:在处理消息的时候以过滤很多道。如何解决:拦截的类都实现统一接口。关键代...原创 2019-01-27 20:37:50 · 113 阅读 · 0 评论 -
设计模式-中介模式
介绍意图:用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。主要解决:对象与对象之间存在大量的关联关系,这样势必会导致系统的结构变得很复杂,同时若一个对象发生改变,我们也需要跟踪与之相关联的对象,同时做出相应的处理。何时使用:多个类相互耦合,形成了网状结构。如何解决:将上述网状结构分离为星型结构。关键代码...原创 2019-02-17 19:46:11 · 160 阅读 · 0 评论 -
设计模式-命令模式
介绍意图:将一个请求封装成一个对象,从而使您可以用不同的请求对客户进行参数化。主要解决:在软件系统中,行为请求者与行为实现者通常是一种紧耦合的关系,但某些场合,比如需要对行为进行记录、撤销或重做、事务等处理时,这种无法抵御变化的紧耦合的设计就不太合适命令模式可以将请求发送者和接收者完全解耦,发送者与接收者之间没有直接引用关系,发送请求的对象只需要知道如何发送请求,而不必知道如何完成请求。...原创 2019-02-17 19:48:41 · 273 阅读 · 0 评论 -
设计模式-备忘录模式
介绍意图:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。主要解决:所谓备忘录模式就是在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态。何时使用:很多时候我们总是需要记录一个对象的内部状态,这样做的目的就是为了允许用户取消不确定或者错误的操作,能够恢复到他原先的状态,使得他有"后悔药"可吃。...原创 2019-02-24 19:12:09 · 151 阅读 · 0 评论 -
设计模式-观察者模式
介绍意图:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。主要解决:一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,保证高度的协作。何时使用:一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知,进行广播通知。如何解决:使用面向对象技术,可以将这种依赖关系弱化。关键代码:在抽象类里有...原创 2019-03-03 20:08:23 · 187 阅读 · 0 评论