随笔分类 - 设计模式
摘要:策略模式简介 定义:是一种行为型模式,定义了一系列的算法,并且这些算法以不会客户使用为前提可以在运行时进行更改、替换 目的:在有多种算法相似的情况下,使用 if...else 所带来的复杂和难以维护 优点: 多重条件语句不易维护,而使用策略模式可以避免使用多重条件语句,如 if...else 语句、
阅读全文
摘要:代理模式简介 定义:是一种结构型模式,需要给某对象提供一个代理以控制对该对象的访问,但是访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介 目的:其他对象提供一种代理以控制对这个对象的访问,当无法或不想直接引用某个对象或访问某个对象存在困难时,可以通过代理对象来间接访问
阅读全文
摘要:过滤器模式简介 定义:是一种结构性模式,允许开发人员使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式把它们连接起来 目标:将传递过来的数据进行分类处理 实现 代码: 1 /**实体类**/ 2 public class Person { 3 private String name; 4 pri
阅读全文
摘要:责任链模式简介 定义:是一种对象行为模式,为了避免请求发送者与多个请求处理者耦合在一起,于是将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链;当有请求发生时,可将请求沿着这条链传递,直到有对象处理它为止 目标:职责链上的处理者负责处理请求,客户只需要将请求发送到职责链上即可,无须关心
阅读全文
摘要:观察者模式简介 定义:属于对象行为型模式,多个对象间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新 目的:一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,保证高度的协作 优点:降低了目标与观察者之间的耦合关系,两者之间是抽象耦合关系,符合依
阅读全文
摘要:装饰模式简介 定义:属于结构型模式,不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能)的模式 目的:扩展一个类经常使用继承方式实现,由于继承为类引入静态特征,并且随着扩展功能的增多,子类会很膨胀,在不想增加很多子类的情况下扩展类,将具体功能职责划分,同时继承装饰者模式 优点:
阅读全文
摘要:1、模板模式简介 定义:一种类行为型模式,定义一个操作中的骨架,而将实现步骤的延迟到子类中,使得子类可以不改变该骨架结构的情况下重定义某些特定步骤 目标:不改变步骤实现不同的结果 解决问题:解决因为小部分差异而导致的代码冗余 优点:封装了不变部分,扩展可变部分。它把认为是不变部分的算法封装到父类中实
阅读全文
摘要:1、适配器模式简介 定义:将一个类的接口转换成另外一个接口,使得两个接口兼容,适配器模式分为类结构型模式和对象结构型模式两种,前者类之间的耦合度比后者高,且要求程序员了解现有组件库中的相关组件的内部结构,所以应用相对较少些 目标:使不能在一工作的两个接口可以兼容一起工作 解决问题:解决在软件系统中,
阅读全文
摘要:1、原型模式简介 定义:属于创建型模式,用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象,这种方式创建对象非常高效,根本无须知道对象创建的细节 目标:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象 解决问题:运行期建立和删除实例 优点:性能提高 逃避
阅读全文
摘要:1、单例模式的简介 定义:属于创建型模式,一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象 目标:保证一个类仅有一个实例,并提供一个访问它的全局访问点 解决问题:一个类被频繁的创建和销毁 说明:单例类只能有
阅读全文
摘要:定义:属于创建型模式,提供了一种创建对象的方式,一个 Builder 类会一步一步使用简单对象构造出最终的复杂对象,这个Builder 类是独立于其他对象的 角色:产品(Ailoy())、抽象建造者(Builder())、建造者(BuilderA()、BuilderB()、NumA()、NumB()
阅读全文
摘要:1、工厂模式简介 定义:属于创建型设计模式,在工厂模式中,创建对象不会对用户暴漏创建的逻辑,通过一个共同的接口返回创建的对象 使用场景:创建复杂的对象 目标:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。 解决问题:解决接口选择问题 说明:按照业务场
阅读全文
摘要:1、常用的设计模式 创建型模式:工厂模式、抽象工厂模式、 单例模式、建造者模式、原型模式 结构型模式:桥接模式、适配器模式、装饰器模式、代理模式、组合模式 行为型模式:模板方法模式、策略模式、观察者模式、 责任链模式、命令模式、访问者模式 设计模式是解决问题的思想,重要的是思想 写代码时,不刻意追求
阅读全文

浙公网安备 33010602011771号