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