设计模式
设计模式
baburwang
让分享成就你我!
展开
-
设计模式
设计模式1. 创建型模式1.1 概述1.2 常见创建型模式详解1.2.1 单例模式1.2.2 工厂模式1.2.3 建造者模式1.2.4 原型模式未完待续1. 创建型模式1.1 概述创建型模式(Creational Pattern)对类的实例化过程进行了抽象,能够将软件模块中对象的创建和对象的使用分离。为了使软件的结构更加清晰,外界对于这些对象只需要知道它们共同的接口,而不清楚其具体的实现细节,使整个系统的设计更加符合单一职责原则。创建型模式在创建什么(What),由谁创建(Who),何时创建(Wh原创 2020-07-01 20:36:38 · 165 阅读 · 0 评论 -
单例模式
单例模式1. 简介1.1 定义1.2 为什么使用单例模式1.3 为什么不使用全局变量确保一个类只有一个实例呢2. 单例的模式的实现2.1 饿汉式(线程安全)2.2 懒汉式(非线程安全和synchronized关键字线程安全版本 )2.3 懒汉式(双重检查加锁版本)2.4 懒汉式(静态内部类方式)2.5 饿汉式(枚举方式)1. 简介1.1 定义 保证一个类只有一个实例,并提供一个访问它的全局访问点。1.2 为什么使用单例转载 2020-07-01 18:51:00 · 130 阅读 · 0 评论 -
工厂模式
工厂模式1. 工厂模式介绍1.1 工厂模式定义1.2 工厂模式的分类1.3 为什么要用工厂模式2. 简单工厂模式2.1 介绍2.2 适用场景2.3 简单工厂模式角色分配2.4 简单工厂实例2.5 使用反射机制改善简单工厂3. 工厂方法模式3.1 介绍3.2 适用场景3.3 工厂方法模式角色分配:3.4 工厂方法模式实例4. 抽象工厂模式4.1 介绍4.2 适用场景4.3 抽象工厂方法模式角色分配:4.4 抽象工厂的工厂和工厂方法中的工厂有什么区别4.5 抽象工厂模式实例1. 工厂模式介绍1.1 工厂模式转载 2020-07-01 18:55:16 · 146 阅读 · 0 评论 -
建造者模式
建造者模式1. 简介2. 建造者模式介绍2.1 定义2.2 建造者模式的优点2.3 建造者模式的缺点2.4 抽象工厂模式 VS 建造者模式2.5 模式结构2.5.1 UML结构图2.5.2 建造者模式主要包含四个角色3. 建造者模式分析4. 实例:KFC套餐4.1 Product(产品角色)4.2 Builder(抽象建造者)4.3 ConcreteBuilder(具体建造者)4.4 Director(指挥者)4.5 测试类(客户端类)1. 简介  转载 2020-07-01 19:43:48 · 313 阅读 · 0 评论 -
原型模式
原型模式1. 简介2. 原型模式介绍2.1 定义2.2 适用场景2.3 模式分析2.4 原型模式优点2.4 原型模式缺点3. 示例程序3.1 Product接口 (Prototype)3.2 Manager类(Client)3.3 MessageBox类(ConcreteProtorype)3.4 UnderlinePen类(ConcreteProtorype)3.5 Main类4 原型模式的角色分析4.1 Prototype(抽象原型类)4.2 ConcretePrototype(具体原型类)4.3 Cl转载 2020-07-01 20:35:39 · 233 阅读 · 0 评论 -
适配器模式
适配器模式1. 适配器模式基本介绍2. 适配器模式使用示例代码3. 适配器模式在开源项目中的应用4. 适配器模式使用注意事项5. 结束语1. 适配器模式基本介绍 著名的设计模式“四人帮”这样评价适配器模式: 将一个类的接口转换成客户希望的另外一个接口。Adapter 模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。——Gang转载 2020-07-02 13:48:12 · 171 阅读 · 0 评论 -
代理模式
代理模式1. 代理模式2. 延迟加载2.1 延迟加载实例3. 动态代理3.1 动态代理实例(JDK)3.1.1 生成动态代理对象3.2 动态代理实例(CGLIB)3.2.1 定义接口3.2.2 定义实现类3.2.3 定义反射类及重载方法3.2.4 运行程序4. 代理模式的应用场合1. 代理模式 代理模式使用代理对象完成用户请求,屏蔽用户对真实对象的访问。 &nbs转载 2020-07-02 17:41:17 · 143 阅读 · 0 评论 -
策略模式
策略模式1. 模式动机2. 模式定义3. 模式结构4. 时序图5. 代码分析6. 模式分析7. 优点8. 缺点9. 适用环境1. 模式动机完成一项任务,往往可以有多种不同的方式,每一种方式称为一个策略,我们可以根据环境或者条件的不同选择不同的策略来完成该项任务。在软件开发中也常常遇到类似的情况,实现某一个功能有多个途径,此时可以使用一种设计模式来使得系统可以灵活地选择解决途径,也能够方便地增加新的解决途径。在软件系统中,有许多算法可以实现某一功能,如查找、排序等,一种常用的方法是硬编码(Hard转载 2020-07-07 12:31:35 · 352 阅读 · 0 评论