
设计模式
不吃辣。
这个作者很懒,什么都没留下…
展开
-
设计模式:观察者
定义与类型 定义:定义了对象之间的一对多依赖,让多个观察者对象同时监听某一主题对象,当主题对象发生变化时,它的所有依赖者(观察者)都会收到通知并更新 类型:行为型 适用场景 关联行为场景,建立一套触发机制 优点 观察者和被观察者之间建立一个抽象的耦合 观察者模式支持广播通信 缺点 观察者之间有过多的细节依赖,提高时间消耗及程序复杂度 使用要得当,要避免循环调用 Coding ...原创 2020-06-21 08:24:38 · 169 阅读 · 0 评论 -
设计模式:原型
定义与类型 定义:指原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象 特点:不需要知道任何创建的细节,不调用构造函数 类型:创建型 适用的场景 类初始化消耗较多资源 new产生的一个对象需要非常繁琐的过程(数据准备、访问权限等) 构造函数比较复杂 循环体中生产大量对象时 优点 原型模式性能上比直接new一个对象性能高 简化创建过程 缺点 必须配备克隆方法 对克隆复杂对象或对克隆出的对象进行复杂改造时,容易引入危险 深拷贝、浅拷贝要运用得当 扩展 深克隆 浅克隆 ...原创 2020-06-07 23:22:36 · 150 阅读 · 0 评论 -
设计模式:单例
定义与类型 定义:保证一个类仅有一个实例,并提供一个全局访问点 类型:创建型 适用场景 想确保任何情况下都绝对只有一个实例 优点 在内存里只有一个实例,减少了内存开销 可以避免对资源的多重占用 设置全局访问点,严格控制访问 缺点 没有接口,扩展比较困难 重点 私有构造器 线程安全 延迟加载 序列化和反序列安全 反射(防止反射攻击) 单例相关设计模式 工厂模式 享元模式 Coding 懒汉式的三种写法 线程不安全 final class Singleton { private static原创 2020-06-06 16:05:16 · 156 阅读 · 0 评论 -
设计模式:建造者
定义与类型 定义:将一个复杂对象的构建和它的表示分离,使同样的构建过程可以表示创建不同的表示 用户只需指定需要建造的类型就可以得到它们,建造过程及细节不需要知道 类型:创建型 适用场景 如果一个对象有非常复杂的内部结构(很多的属性) 想把复杂对象的创建和使用分离 优点 封装性好,创建和使用分离 扩展性好、建造类之间独立、一定程度上解耦 缺点 产生多余的builder对象 产品内部发生变化,建造者都要修改,成本较大 Coding 和工厂模式区别:建造者模式注重于方法的调用顺序,工厂模式注重于创建产原创 2020-06-05 22:15:27 · 150 阅读 · 0 评论 -
设计模式:抽象工厂
定义与类型 定义: 抽象工厂模式提供了一个创建一系列相关或相互依赖对象的接口 无须指定它们具体的类 类型:创建型 抽象工厂可以将一组具有同一主题单独的工厂封装起来,在使用中客户端程序需要创建抽象工厂的具体实现,使用抽象工厂作为接口,来创建这一个主题的对象 适用场景 客户端(应用层)不依赖于产品类实例如何被创建、实现等细节 强调一系列相关的产品对象(属于同一产品族)一起使用创建对象需要大量重复的代码 提供了一个产品类的库,所有的产品以同样的接口出现,从而使客户端不依赖于具体的实现 优点 具体产品在应原创 2020-06-04 19:08:51 · 247 阅读 · 0 评论 -
设计模式:工厂方法
定义与类型 定义:定义一个创建对象的接口,但让实现这个接口的类来决定实例化那个类,工厂方法让类的实例化推迟到子类中进行 类型:创建型 适用场景 创建对象需要大量重复的代码 客户端(应用层)不依赖于产品类实例如何被创建、实现等细节 一个类通过其子类来指定创建那个对象(利用面向对象的多态性和里氏替换原则) 优点 用户只需要关心所需产品对应的工厂,无需关心创建细节 加入新产品符合开闭原则,提高可扩展性 缺点 类的个数容易过多,增加复杂度 增加了系统的抽象性和理解难度 ...原创 2020-06-02 22:51:40 · 118 阅读 · 1 评论 -
设计模式:简单工厂
定义与类型 定义:由一个工厂对象决定创建出哪一种“产品”类型 类型:创建型,但不属于GOF23种设计模式 适用场景 工厂类负责创建的对象比较少 客户端(应用层)只知道传入工厂类的参数,对于如何创建对象逻辑并不关心 优点 只需要传入一个正确的参数,就可以获取你所需要的对象,而无需知道其创建细节 缺点 工厂类的职责相对过重,增加新的产品,需要修改工厂类的判断逻辑,违背开闭原则 无法形成基于继承的等级结构 Coding 对于GOF23中设计模式中,带工厂的只有抽象工厂和工厂方法两种模式 package c原创 2020-06-01 23:01:36 · 126 阅读 · 0 评论 -
单例设计模式
什么是设计模式 设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。 使用设计模式的目的:为了代码可重用性、可维护性。 设计模式通常也被成为GoF设计模式,GoF是“四人组”(Gang of Four)的缩写,《Design Patterns: Elements of Reusable Object-Oriented Software》(即后述《...原创 2019-06-24 18:16:25 · 104 阅读 · 0 评论