![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
常用设计模式
Huangy远
github地址 https://github.com/yellowFarLu
展开
-
常用设计模式——状态模式
状态模式概念状态模式允许对象在内部状态改变时,改变它的行为。对象好像看起来修改了它的类。这个模式将状态封装成了独立的类,并将动作委托到当前状态的对象。状态模式用类代表不同的状态Context会将行为委托到当前对象状态转换可以由State类控制或者Context控制使用状态模式通常会导致程序中类的数目大大增加State可以被多个Context实例共享策略模式区别以状态模式...原创 2020-01-16 14:08:11 · 128 阅读 · 0 评论 -
常用设计模式——责任链模式
责任链模式责任链模式(Chain of Responsibility Pattern)是一种常见的行为模式。使多个对象都有处理请求的机会,从而避免了请求的发送者和接收者之间的耦合关系。将这些对象串成一条链,并沿着这条链一直传递该请求,直到有对象处理它为止。责任链模式的重点在“链上”,由一条链去处理相似的请求,在链中决定谁来处理这个请求,并返回相应的结果。角色抽象处理者(Handler)角...原创 2020-01-16 11:48:45 · 155 阅读 · 0 评论 -
常用设计模式——外观模式
外观模式概念提供了一个统一的接口,来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。外观模式不止简化了接口,也将客户端从组件的子系统中解耦。外观和适配器可以包装许多类,但是外观的意图是简化接口,而适配器的意图是将接口转换成不同的接口。示例/** * 外观对象 * @author Peter */public class Facade { //示意方...原创 2020-01-16 10:31:59 · 152 阅读 · 0 评论 -
常用设计模式——适配器模式
适配器模式概念将一个类的接口,转换成客户期望的另外一个接口。实际上适配器有2种,对象适配器和类适配器##对象适配器示例使用组合的方式实现,不仅可以适配某个类,还可以适配该类的子类。/** * 鸭子 * @author huangy on 2019-05-26 */public interface Durk { void quack(); void fly(...原创 2020-01-16 10:01:55 · 189 阅读 · 0 评论 -
常用设计模式——桥接模式
桥接模式背景在正式介绍桥接模式之前,我先跟大家谈谈两种常见文具的区别,它们是毛笔和蜡笔。假如我们需要大中小3种型号的画笔,能够绘制12种不同的颜色,如果使用蜡笔,需要准备3×12 = 36支,但如果使用毛笔的话,只需要提供3种型号的毛笔,外加12个颜料盒即可,涉及到的对象个数仅为 3 + 12 = 15,远小于36,却能实现与36支蜡笔同样的功能。如果增加一种新型号的画笔,并且也需要具有12种...原创 2019-12-30 17:18:04 · 246 阅读 · 0 评论 -
常用设计模式——模板方法模式
模板方法模式概念在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变算法结构的情况下,重新定义算法中的某些步骤。模板方法为我们提供一种代码复用的重要技巧。模板方法的抽象类可以定义具体方法、抽象方法。抽象方法由子类实现。为了防止子类改变模板方法中的算法,可以将模板方法声明为final。策略模式和模板方法模式都是封装算法,策略模式使用组合,模板方法模式使用继...原创 2019-12-30 17:15:59 · 149 阅读 · 0 评论 -
常用设计模式——命令模式
命令模式定义将"请求"封装成对象,以便使用不同的请求、队列、或者日志来参数化其他对象(就是命令对象拥有相同的接口,不同的命令对象可以被设置到调用者中)。命令模式也可以支持撤销操作。一个命令对象将动作和接受者封装到命令对象中,这个对象只保留出一个execute()方法,当此方法被调用时,接收者就会进行这些动作。从外面看,其他对象不知道究竟哪个接收者进行了哪些动作。一个调用者可以设置不...原创 2019-12-30 17:14:23 · 151 阅读 · 0 评论 -
常用设计模式——工厂模式
前言:曾经以为工厂模式很简单,其实不然,工厂模式有3种模式,下面分别阐述:简单工厂概念创建一个工厂对象,来封装创建对象的过程示例/** * 生产鸭对象的工厂 */public class DurkFactory { public Durk getDuck() { return new Durk(); }}工厂方法模式概念工厂方法模式定义...原创 2019-12-30 17:13:19 · 129 阅读 · 0 评论 -
常用设计模式——复合模式
复合模式概念复合模式结合两个或以上的模式,组成一个解决方案,解决问题。MVC和Model2属于复合模式。MVCMVC是复合模式的一种,结合了观察者模式、策略模式、组合模式。视图:用来呈现模型。视图通常直接从模型中取得它需要显示的状态和数据。视图使用组合模式实现用户界面,用户界面通常组合了嵌套的组件,像面板、框架和按钮。控制器:取得用户的输入,并解读其对模型的意思。控制器是视图的策略,...原创 2019-12-30 17:11:06 · 617 阅读 · 0 评论 -
常用设计模式——迭代器模式
迭代器模式概念提供一种方法顺序访问一个集合中的各个元素,而又不暴露其内部实现。示例演示了迭代器模式,遍历餐厅菜单的例子/** * 菜单项 * @author huangy on 2019-06-07 */public class MenuItem { private String name; private String description; ...原创 2019-12-30 17:04:49 · 155 阅读 · 0 评论 -
常用设计模式——单例模式
单例模式定义确保一个类只有一个实例,并且只提供一个全局访问点。饿汉模式加载类的时候就实例化对象/** * 饿汉模式 * @author huangy on 2019-05-25 */public class HunarySingle { /** * 在静态初始化器中创建单件。这段代码保证了线程安全 * 加载类的时候就初始化了属性。等到线程访问该属性的...原创 2019-12-30 17:03:55 · 194 阅读 · 1 评论 -
常用设计模式——代理模式
代理模式概念为一个对象提供一个替身,以控制对这个对象的访问。使用代理模式创建代理对象,让代理对象控制目标对象的访问,目标对象可以是远程对象、创建开销大的对象、需要安全控制的对象。几种代理访问控制的方式远程代理 控制 访问远程对象。远程代理管理客户和远程对象之间的交互。远程代理作为远程JVM上对象的一个本地代表调用代理的方法,该方法会被代理利用网络转发到远程执行方法执行的结果会...原创 2019-12-30 17:03:10 · 107 阅读 · 0 评论 -
常用设计模式——策略模式
策略模式概念策略模式定义了算法族,分别封装起来,让它们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。策略对象需要实现相同的接口。实例/** * 鸭子类(客户端) * @author huangy on 2019-05-18 */public class Durk { protected FlyBehavior flyBehavior; public...原创 2019-12-30 17:02:23 · 127 阅读 · 0 评论