随笔分类 - 设计模式
摘要:标签 :设计模式 引言 一个学校可能每天有不同的领导过来巡视检查,今天来一个教育局领导检查教育实施工作,明天来一个卫生局的领导检查食堂卫生,后天来一个公安局的领导检查安全消防安全设备。 每一个领导会带着不同的目的来访问学校。 教育局领导的工作内容包括教育方针研讨会、课堂旁听和教师慰问;卫生局领导的工
阅读全文
摘要:标签: 设计模式 引言 在模板方法模式中,将实现功能的每一个步骤所对应的方法称为 基本方法 (例如“点单”、“吃东西”和“买单”),而调用这些基本方法同时定义基本方法的执行次序的方法称为 模板方法 (例如“请客”)。 模板方法 定义算法执行的骨架,子类继承下来直接使用,一般用final修饰不允许子类
阅读全文
摘要:标签(空格分隔): 设计模式 行为型模式 。 一个类的行为或者其算法可以在运行时更改。 策略模式与状态模式类似,但Context类中包含一个strategy接口的引用,而不是state接口的引用。 策略的选择是客户端决定的,不同的策略最终都是为了达到同一个效果。例如排序算法有很多种,可以使用策略模式
阅读全文
摘要:标签(空格分隔): 设计模式 行为型模式。 类的行为是基于它的状态改变的,状态改变,行为跟着改变。 具体实现: 一个状态接口,具体状态类实现该接口。 一个Context类,拥有状态的实例,随着这个状态的改变,它的行为会改变。 注重状态的转变,状态只能从一个状态转变按规则转变成另一个状态,而不是任意转
阅读全文
摘要:标签(空格分隔): 设计模式 行为型模式。 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 不知道观察者有多少个,观察者可以动态绑定和解绑。 具体实现: Subject角色 :抽象角色,用来存放所有观测者,即聚集一个Observer的list
阅读全文
摘要:标签(空格分隔): 设计模式 简介 行为型模式。保存一个对象的状态,以便在某个时刻恢复对象。 打boss前存档,下象棋悔棋,编辑文档时使用Ctrl+z撤销等场景都是备忘录模式的应用。 优点:可以回滚。缺点:资源消耗严重。 具体实现 写一个存储对象状态的类(类似于备忘),然后在另一个类中维护一个备忘类
阅读全文
摘要:标签(空格分隔): 设计模式 降低多个对象与类之间的通信复杂性。 行为型模式。 将网状结构的类交互,分离成星型结构。 没有QQ之前,大家的沟通都是两两之间面对面的,消息的交互非常复杂,如果想要发出一条新信息,让大家都知道,这个过程要传递很多遍。有了QQ群之后,大家只要把消息发到QQ群上,所有人立马就
阅读全文
摘要:标签: 设计模式 简介 数据驱动的设计模式, 行为型模式 。 定义:将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。 使命令的发送者和执行者解耦。 把每个命令(方法)封装成一个对象,以便对多个功能进行封装和处理。 UML类图
阅读全文
摘要:标签: 设计模式 简介 责任链模式是 行为型模式 。 为请求创建了一个接收者对象的 链 。每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。 使多个对象都有机会处理请求,从而 避免 请求的 发送者和接收者之间的耦合 关系。将这些对象连成
阅读全文
摘要:标签 :设计模式 模式简介 代理模式是一种 结构型模式 。使用一个代理类来调用真实类的请求。 代理可以提供延迟实例化,访问控制,等等功能。 UML类图 角色 抽象角色(Subject) :声明真实对象和代理对象的共同接口。 代理角色(Proxy) :代理对象角色 内部含有对真实对象的引用 ,从而可以
阅读全文
摘要:标签 : 设计模式 模式简介 享元模式是一种 结构型模式 。 当有 大量重复 对象时,通过共享对象,来达到减少系统运行时对象的总数的目的。 避免对象过多导致 内存溢出 。提升效率。 享元模式以共享的方式高效地支持大量的 细粒度对象 。 需要有一个 工厂 来控制对象生成。 核心实现 在对象工厂中放一个
阅读全文
摘要:标签 : 设计模式 外观模式 是 结构型模式 。 定义 为子系统中的一组接口提供一个统一的入口。外观模式定义了一个高层接口(Facade类),这个接口使得这一子系统更加容易使用。 例子 把一个子系统比作公司,外观类就是公司的公关部,任何客户与这个公司合作只需要找公关部即可,公关部会根据客户的需求调用
阅读全文
摘要:装饰器模式(Decorator Pattern) 标签: 设计模式 装饰器模式 是一种 结构型模式 ,目标是 动态 的给一个对象 添加一些额外的职责 , 装饰器模式 使用 组合 而不是 继承 的方式来实现。 核心代码是包装器的构造方法传入组件作为参数,再把构造出来的类传入其他包装器,实现不断包装、不
阅读全文
摘要:标签: 设计模式 过滤器模式 比较简单,是一种 结构型模式 。 1. 使用不同的标准来 过滤一组对象 ,通过逻辑运算以解耦的方式把它们连接起来。 2. 即写一个接口,接口中每个方法代表一个标准,传入一组对象,返回这组对象中符合标准的对象。像面试官根据不同标准来刷人的感觉。
阅读全文
摘要:标签(空格分隔): 设计模式 组合模式是 结构型模式 ,在表示一种关系时使用。 1. 将对象组合成 树形结构 以表示"部分 整体"的层次结构(文件夹与文件,树枝和叶子,部门与员工)。类似递归。 2. 客户程序可以像处理简单元素一样来处理复杂元素。 UML类结构图 Component :是组合中的对象
阅读全文
摘要:标签: 设计模式 1. 工厂模式 创建型模式 ,调用者新建对象时使用,不需要new具体对象,只需要先获取一个工厂,从工厂里面按照名字来get对象即可。 优点:隐藏了新建对象的细节,新建对象需要复杂逻辑时使用效果好。 缺点:复杂化新建对象的流程,简单对象使用工厂多次一举。 2. 抽象工厂模型 创建型模
阅读全文
摘要:标签: 设计模式 1. 桥接模式 用于把抽象化与实现化解耦,使得二者可以独立变化。属于 结构型模式 ,通过 提供 抽象化和实现化之间的 桥接结构 ,来实现二者的解耦。 2. 原本使用类继承关系可以解决多维度变化,但是会导致 类爆炸 。比如二维度下,每个维度有两个变化,则需要$2 2=4$个类,是乘法
阅读全文
摘要:标签: 设计模式 适配器 模式一种比较简单的 结构型模式 。 1. 解决已有类复用,但接口不符合客户类需求的场景,这时需要一个“适配器”来转换接口,类似与手机充电口适配器。 2. 不宜过多使用,如果需要转换的类比较多,建议重构系统。 3. 新设计的系统不要使用适配器模式,而是构想更好的设计。 4.
阅读全文
摘要:标签: 设计模式 原型模式 是使用内存复制的方法创建对象的模式,当需要创建大量类似的对象时,性能较好。属于 创建型模式 。 区别于工厂模式, 原型模式是先创建一个对象并缓存起来,然后后续需要创建这种对象的时候,只需要调用该对象 方法,即可获取一个新对象,由与 是内存数据复制操作,这样可以避免 操作带
阅读全文
摘要:建造者模式 :是将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 建造者模式通常包括下面几个角色: 1. Builder:给出一个抽象接口,以规范产品对象的各个组成成分的建造。这个接口规定要实现复杂对象的哪些部分的创建,并不涉及具体的对象部件的创建。 2. Concret
阅读全文

浙公网安备 33010602011771号