![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
Andycuigo
wanna and got
展开
-
设计模式-行为型-责任链模式
责任链模式责任链(Chain of Responsibility)模式为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。使用场景一个请求对象需要多种任务的处理,通过链式传播对象的场景。优点1.职责链对于客户请求是透明的2.“链”将请求的发送者和处理者解耦代码演示日志类级别有debug、info、warn、error的区别,模拟日志类对请求的处理。日志请求/** * 日志类 */@AllArgsConstruc原创 2021-03-09 17:37:27 · 91 阅读 · 0 评论 -
设计模式-行为型-观察者模式
观察者模式当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知依赖它的对象。观察者模式属于行为型模式。使用场景一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,保证高度的协作。代码事件类,定义了事件源头、被回调对象、回调方法,等其他可用的信息/** * 事件 */public class Event { //事件源 private Object source; //被回调对象原创 2021-03-08 17:55:59 · 80 阅读 · 0 评论 -
设计模式-结构型-装饰者模式
装饰者模式装饰者(Decorator)模式是指在不改变原对象的基础之上,将功能附加到对象上,提供了比继承更灵活性的替代方案(扩展原有对象的功能),装饰者模式属于结构型模式。区别于适配器模式装饰者模式适配器模式是一种特别的适配器可以不保留层级关系装饰者和被装饰者实现同一个接口,目的是方便扩展适配者和被适配者没有必然的层级关系,通常使用代理或者继承形式进行包装满足is-a 关系满足has-a关系注重的是覆盖和扩展注重的是兼容、转换装饰者模式应用io和i原创 2021-03-08 11:25:09 · 73 阅读 · 0 评论 -
设计模式-创建型-建造者模式
建造者模式定义将一个复杂的对象的构建与它的表示分离,是的同样的构建过程可以创建不同的表示。场景初始化一个对象特别复杂,如使用多个构造方法,或者说有很多参数,并且都有默认值时。一般4个以上参数,考虑使用建造者模式创建对象。UML图总结为了灵活构造复杂对象,该对象会有多个成员变量,在外部调用的时候,不需要或者不方便一次性创建出所有的成员变量,在这种情况下,使用多个构造方法去构建对象,很难维护,这时候Builder设计模式解决这个问题,进行buid()方法中创建对象,并且将builder传入,该转载 2021-03-04 21:38:12 · 115 阅读 · 1 评论 -
设计模式-行为型-委派模式
委派模式委派模式(Delegate)不属于23种常见设计模式,静态的代理模式+策略模式=委派模式。区别代理模式:注重的是过程策略模式:注重的是可扩展委派模式:注重的是内部灵活运用和结果案例案例一老板,经理,员工。老板把活交给经理,经理拆分了任务,根据每名员工的能力分配能胜任的工作。案例二springmvc中的DispatcherServlet类,这个类把Controller中的Method和url组装成了MappedHandler,当请求到达,doDispatcher()通过HttpR原创 2021-03-04 17:39:01 · 89 阅读 · 1 评论 -
设计模式-行为型-策略模式
策略模式概念在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。使用场景挑选一种算法来作出某种选择。在有多种算法相似的情况下,避免使用 if…else 所带来的复杂和难以维护实际应用选择支付方式、出行方式优缺点优点: 1、算法可以自由切换。 2、避免使用多重条件判断。 3、扩展性良好。缺点: 1、策略类会增多。 2、所有策略类都需要对外暴露。代码实现网购下单时选择某种支付方式...原创 2021-03-03 16:11:18 · 88 阅读 · 2 评论 -
设计模式-结构型-代理模式
代理模式原创 2021-03-02 16:53:04 · 73 阅读 · 0 评论 -
设计模式-结构型-外观模式
概念外观模式(Facade),他隐藏了系统的复杂性,并向客户端提供了一个可以访问系统的接口。这种类型的设计模式属于结构性模式。为子系统中的一组接口提供了一个统一的访问接口,这个接口使得子系统更容易被访问或者使用。举例遥控器预约咖啡机煮咖啡,需要烧水模块烧开水,研磨模块磨碎咖啡豆两个步骤。外观模式抽象结构代码烧水模块研磨模块咖啡机遥控器运行结果在外观模式中主要包含如...原创 2019-10-24 23:11:03 · 157 阅读 · 0 评论 -
设计模式-结构型-组合模式
定义组合模式,又叫部分-整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。ps://www.jianshu.com/p/8ec55296dd9c...原创 2019-10-24 08:37:31 · 144 阅读 · 0 评论 -
设计模式-创建型-单例模式
简介单例的核心就在于单实例,即整个环境中该类有且只能有一个对象。而java创建实例的方式已知的有四种,分别是通过new、clone、反射或者序列化这四种方式去创建实例特点1、单例只能有一个实例。2、单例必须自己创建自己的唯一实例。3、单例必须给所有其他对象提供这一实例。优点VS缺点优点1、在内存里只有一个实例,减少了内存的开销,尤其是频繁的创建和销毁实例(比如管理缓存)。2、避免...原创 2019-10-22 21:54:27 · 113 阅读 · 0 评论 -
java 23种设计模式和6大设计原则
java的设计模式大体上分为三大类:创建型模式(5种):工厂方法模式,抽象工厂模式,单例模式,建造者模式,原型模式。结构型模式(7种):适配器模式,装饰器模式,代理模式,外观模式,桥接模式,组合模式,享元模式。行为型模式(11种):策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。设计模式遵循的原则有6个:1、...原创 2019-10-16 21:46:13 · 183 阅读 · 0 评论