
设计模式
详解常用设计模式及项目中何时会用到
孤独的冥王星
当你对成功的渴望犹如对呼吸的渴望时,那么你就会成功
展开
-
Java设计模式 - 行为型模式 - 模板模式
介绍 模板模式(Template Pattern)定义一个操作中的算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 优缺点 优点 1.封装不变部分,扩展可变部分 2.提取公共代码,便于维护 3.行为由父类控制,子类实现 缺点 每一个不同的实现都需要一个子类来实现,导致类的个数增加,使得系统更加庞大。 使用场景 1.有多个子类共有的方法,且逻辑相...原创 2019-10-24 10:48:57 · 159 阅读 · 0 评论 -
Java设计模式 - 行为型模式 - 观察者模式
介绍 观察者模式(Observer Pattern)对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。其实就是发布订阅模式,发布者发布信息,订阅者获取信息,订阅了就能收到信息,没订阅就收不到信息。 优缺点 优点 观察者和被观察者之间是抽象耦合,应对业务变化; 增强系统灵活性、可扩展性。 缺点 如果一个被观察者对象有很多的直接和间接的观察者的话...原创 2019-06-24 17:27:20 · 157 阅读 · 0 评论 -
Java设计模式 - 行为型模式 - 命令模式
介绍 命令模式(Command Pattern)将一个请求封装成一个对象,从而让用户使用不同的请求把客户端参数化 优缺点 优点 降低了系统耦合度 新的命令可以很容易添加到系统中去。 缺点 使用命令模式可能会导致某些系统有过多的具体命令类。 使用场景 认为是命令的地方都可以使用命令模式 举例 接收者类 public class Receiver { public void actio...原创 2019-05-30 15:14:21 · 156 阅读 · 0 评论 -
Java设计模式 - 行为型模式 - 策略模式
介绍 策略模式(Strategy Pattern)定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。 优缺点 优点 算法可以自由切换 避免使用多重条件判断 扩展性良好 缺点 策略类会增多 所有策略类都需要对外暴露 使用场景 针对同一类型问题的多种处理方式,仅仅是具体行为有差别时 需要安全的封装多种同一类型的操作时 出现同一抽...原创 2019-05-28 12:12:06 · 156 阅读 · 0 评论 -
Java设计模式 - 行为型模式 - 状态模式
介绍 状态模式(State Pattern)当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。状态模式中的行为是由状态来决定的,不同的状态下有不同的行为。 状态模式和策略模式的结构几乎完全一样,但它们的目的、本质却完全不一样。状态模式的行为是平行的、不可替换的,策略模式的行为是彼此独立的、可相互替换的。用一句话来表述,状态模式把对象的行为封装在不同的状态对象里,每个状态对象都...原创 2019-05-27 17:06:02 · 199 阅读 · 0 评论 -
Java设计模式 - 创建型模式 - 抽象工厂方法模式
介绍 抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。 优缺点 优点: 当一个产品族中的多个对象被设计成一起工作时,它能保证客户端始终只...原创 2019-05-23 12:16:32 · 211 阅读 · 0 评论 -
Java设计模式 - 创建型模式 - 工厂方法模式
介绍 工厂方法模式(Factory Pattern)是 Java 中最常用的设计模式之一。定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类。 优缺点 优点: 一个调用者想创建一个对象,只要知道其名称就可以了。 扩展性高,如果想增加一个产品,只要扩展一个工厂类就可以。 屏蔽产品的具体实现,调用者只关心产品的接口。 缺点: 每次增加一个产品时,都需要增加一个具体类和对象实现工厂,使得系...原创 2019-05-21 11:22:51 · 172 阅读 · 0 评论 -
Java设计模式 - 创建型模式 - 建造者模式
介绍 建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 一个 Builder 类会一步一步构造最终的对象。该 Builder 类是独立于其他对象的。 特点 将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。主要解决在软件系统中,有时候面临着”一个复杂对象”的...原创 2018-04-20 21:55:50 · 299 阅读 · 0 评论 -
Java设计模式 - 创建型模式 - 单例模式
介绍 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。 特点 单例类只能有一个实例。 单例类必须自己创建自己的唯一实例。 单例类必须给所有其他对象提供这一实例。 优缺点 优点: ...原创 2018-04-10 14:42:37 · 222 阅读 · 0 评论 -
Java设计模式 - 结构型模式 - 适配器模式
介绍 适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。主要解决在软件系统中,常常要将一些”现存的对象”放到新的环境中,而新环境要求的接口是现对象不能满足的。适配器继承或依赖已有的对象,实现想要的目标接口。 适配器角色 目标(Target):定义一个客户端使用的特定接口。 客户端(Client):使用目标接口,与和目标接口一致的对象合作。 被适配者(Adap...原创 2018-04-04 11:29:23 · 255 阅读 · 0 评论 -
Java设计模式 - 结构型模式 - 代理模式
介绍 代理模式(Proxy Pattern)也称为委托模式,一个类代表另一个类的功能,为其他对象提供一种代理以控制对这个对象的访问。 优缺点 优点 职责清晰 高扩展性 智能化 缺点 由于在客户端和真实主题之间增加了代理对象,因此有些类型的代理模式可能会造成请求的处理速度变慢 实现代理模式需要额外的工作,有些代理模式的实现非常复杂 使用场景 按职责来划分,通常有以下使用场景: 1、远程代理。...原创 2019-09-03 17:37:07 · 146 阅读 · 0 评论 -
Java设计模式 - 结构型模式 - 装饰模式
介绍 装饰模式(Decorator Pattern)也称为包装模式,动态的给一个对象添加一些额外的职责。就增加功能来说,装饰器模式相比生成子类更为灵活。 优缺点 优点 装饰类和被装饰类可以独立发展,不会相互耦合,装饰模式是继承的一个替代模式,装饰模式可以动态扩展一个实现类的功能。 缺点 多层装饰比较复杂 使用场景 1.扩展一个类的功能。 2.动态增加功能,动态撤销。 举例 该模式包含角色 抽象组件...原创 2019-09-09 10:40:55 · 157 阅读 · 0 评论