随笔分类 -  设计模式

摘要:建造者模式 概述 将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的表示。 分离了部件的构造(由Builder来负责)和装配(由Director负责)。 从而可以构造出复杂的对象。这个模式适用于:某个对象的构建过程复杂的情况。 由于实现了构建和装配的解耦。不同的构建器,相同的装配,也可 阅读全文
posted @ 2021-04-15 14:47 天宇轩-王 阅读(83) 评论(0) 推荐(0) 编辑
摘要:解释器模式 概述 定义: 给定一个语言,定义它的文法表示,并定义一个解释器,这个解释器使用该标识来解释语言中的句子。 在解释器模式中,我们需要将待解决的问题,提取出规则,抽象为一种“语言”。比如加减法运算,规则为:由数值和+-符号组成的合法序列,“1+3-2” 就是这种语言的句子。 解释器就是要解析 阅读全文
posted @ 2021-04-13 14:02 天宇轩-王 阅读(75) 评论(0) 推荐(0) 编辑
摘要:代理模式 概述 由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。 Java中的代理按照代理类生成时机不同又分为静态代理和动态代理。静态代理代理类在编译期就生成,而动态代理代理类则是在Java运行时动态生 阅读全文
posted @ 2021-02-03 13:38 天宇轩-王 阅读(110) 评论(0) 推荐(0) 编辑
摘要:迭代器模式 概述 定义: 提供一个对象来顺序访问聚合对象中的一系列数据,而不暴露聚合对象的内部表示。 结构 迭代器模式主要包含以下角色: 抽象聚合(Aggregate)角色:定义存储、添加、删除聚合元素以及创建迭代器对象的接口。 具体聚合(ConcreteAggregate)角色:实现抽象聚合类,返 阅读全文
posted @ 2021-01-26 20:31 天宇轩-王 阅读(100) 评论(0) 推荐(0) 编辑
摘要:责任链模式 概述 在现实生活中,常常会出现这样的事例:一个请求有多个对象可以处理,但每个对象的处理条件或权限不同。例如,公司员工请假,可批假的领导有部门负责人、副总经理、总经理等,但每个领导能批准的天数不同,员工必须根据自己要请假的天数去找不同的领导签名,也就是说员工必须记住每个领导的姓名、电话和地 阅读全文
posted @ 2021-01-26 14:45 天宇轩-王 阅读(107) 评论(0) 推荐(0) 编辑
摘要:命令模式 概述 日常生活中,我们出去吃饭都会遇到下面的场景。 定义: 将一个请求封装为一个对象,使发出请求的责任和执行请求的责任分割开。这样两者之间通过命令对象进行沟通,这样方便将命令对象进行存储、传递、调用、增加与管理。 结构 命令模式包含以下主要角色: 抽象命令类(Command)角色: 定义命 阅读全文
posted @ 2021-01-25 23:36 天宇轩-王 阅读(153) 评论(0) 推荐(0) 编辑
摘要:模板方法模式 概述 在面向对象程序设计过程中,程序员常常会遇到这种情况:设计一个系统时知道了算法所需的关键步骤,而且确定了这些步骤的执行顺序,但某些步骤的具体实现还未知,或者说某些步骤的实现与具体的环境相关。 例如,去银行办理业务一般要经过以下4个流程:取号、排队、办理具体业务、对银行工作人员进行评 阅读全文
posted @ 2021-01-25 14:21 天宇轩-王 阅读(83) 评论(0) 推荐(0) 编辑
摘要:组合模式 概述 ​ 对于这个图片肯定会非常熟悉,上图我们可以看做是一个文件系统,对于这样的结构我们称之为树形结构。在树形结构中可以通过调用某个方法来遍历整个树,当我们找到某个叶子节点后,就可以对叶子节点进行相关的操作。可以将这颗树理解成一个大的容器,容器里面包含很多的成员对象,这些成员对象即可是容器 阅读全文
posted @ 2021-01-25 13:05 天宇轩-王 阅读(116) 评论(0) 推荐(0) 编辑
摘要:外观模式 概述 有些人可能炒过股票,但其实大部分人都不太懂,这种没有足够了解证券知识的情况下做股票是很容易亏钱的,刚开始炒股肯定都会想,如果有个懂行的帮帮手就好,其实基金就是个好帮手,支付宝里就有许多的基金,它将投资者分散的资金集中起来,交由专业的经理人进行管理,投资于股票、债券、外汇等领域,而基金 阅读全文
posted @ 2021-01-24 23:18 天宇轩-王 阅读(87) 评论(1) 推荐(0) 编辑
摘要:桥接模式 概述 现在有一个需求,需要创建不同的图形,并且每个图形都有可能会有不同的颜色。我们可以利用继承的方式来设计类的关系: 我们可以发现有很多的类,假如我们再增加一个形状或再增加一种颜色,就需要创建更多的类。 试想,在一个有多种可能会变化的维度的系统中,用继承方式会造成类爆炸,扩展起来不灵活。每 阅读全文
posted @ 2021-01-24 22:28 天宇轩-王 阅读(76) 评论(0) 推荐(0) 编辑
摘要:装饰者模式 概述 我们先来看一个快餐店的例子。 快餐店有炒面、炒饭这些快餐,可以额外附加鸡蛋、火腿、培根这些配菜,当然加配菜需要额外加钱,每个配菜的价钱通常不太一样,那么计算总价就会显得比较麻烦。 使用继承的方式存在的问题: 扩展性不好 如果要再加一种配料(火腿肠),我们就会发现需要给FriedRi 阅读全文
posted @ 2021-01-22 14:28 天宇轩-王 阅读(118) 评论(1) 推荐(0) 编辑
摘要:适配器模式 概述 如果去欧洲国家去旅游的话,他们的插座如下图最左边,是欧洲标准。而我们使用的插头如下图最右边的。因此我们的笔记本电脑,手机在当地不能直接充电。所以就需要一个插座转换器,转换器第1面插入当地的插座,第2面供我们充电,这样使得我们的插头在当地能使用。生活中这样的例子很多,手机充电器(将2 阅读全文
posted @ 2021-01-22 10:27 天宇轩-王 阅读(121) 评论(1) 推荐(0) 编辑
摘要:1 结构 在观察者模式中有如下角色: Subject:抽象主题(抽象被观察者),抽象主题角色把所有观察者对象保存在一个集合里,每个主题都可以有任意数量的观察者,抽象主题提供一个接口,可以增加和删除观察者对象。 ConcreteSubject:具体主题(具体被观察者),该角色将有关状态存入具体观察者对 阅读全文
posted @ 2021-01-14 14:59 天宇轩-王 阅读(88) 评论(0) 推荐(0) 编辑
摘要:享元模式 1 概述 定义: ​ 运用共享技术来有效地支持大量细粒度对象的复用。它通过共享已经存在的对象来大幅度减少需要创建的对象数量、避免大量相似对象的开销,从而提高系统资源的利用率。 2 结构 享元(Flyweight )模式中存在以下两种状态: 内部状态,即不会随着环境的改变而改变的可共享部分。 阅读全文
posted @ 2021-01-13 22:05 天宇轩-王 阅读(63) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示