
设计模式
23种设计模式
Polarisy丶
这个作者很懒,什么都没留下…
展开
-
GOF的23种设计模式(8)—代理模式
代理模式 静态代理 角色分析: 抽象角色:一般会使用接口或者抽象类来解决 真实角色:被代理的角色 代理角色:代理真实角色,代理真实角色后,我们一般会做一些附属操作 客户:访问代理对象的人 代理模式的好处 可以使真实角色的操作更加纯粹,不用关注一些公共的业务 公共也就是交给代理角色,实现了业务的分工 公共业务发生扩展的时候,方便集中管理 缺点: 一个真实角色就会产生一个代理角...原创 2020-04-15 01:52:18 · 240 阅读 · 0 评论 -
GOF的23种设计模式(7)—桥接模式
桥接模式 定义 将抽象部分和它的实现部分分离,使它们都可以独立的变化。 处理多层继承结构、处理多维变化的场景,将各个维度设计成独立的继承结构,使各个维度可以独立的扩展在抽象层建立关联。 优点 比多继承的方案更好,极大的减少了子类的个数,从而降低管理和维护的成本。 提高了系统的可扩充性,在两个变化维度中任意扩展一个维度,都不需要修改原有系统,符合开闭原则。 缺点 增加...原创 2020-04-15 00:28:34 · 199 阅读 · 0 评论 -
GOF的23种设计模式(6)—适配器模式
适配器模式 核心角色 目标接口(Target):客户所期望的接口(接口、抽象类或具体类)。 适配的类(Adaptee)。 适配器(Adapter):通过包装适配的类,把原接口转换成目标接口。 分类 使用继承实现:Adapter继承Adaptee。 使用关联实现:Adapter持有Adaptee的引用,Adapter可以继承其他类,更灵活。 适用场景 系统需要使用一些现有的类...原创 2020-04-14 23:51:11 · 188 阅读 · 0 评论 -
GOF的23种设计模式(5)—原型模式
原型模式 定义 通过new创建对象需要非常繁琐的数据准备或访问权限,则可以使用原型模式。 就是Java中的克隆技术,以某个对象为原型,复制出新的对象。 优势:效率高,避免重新执行构建过程。 克隆类似于new,但不同于new。new创建新的对象属性采用默认值。克隆出的对象属性完全与原型对象相同,并且克隆出的新对象改变不会影响原型对象,然后再修改克隆对象的值。 核心 Clonable接...原创 2020-04-14 22:32:49 · 209 阅读 · 0 评论 -
GOF的23种设计模式(4)—建造者模式
建造者模式 定义 构建一个复杂的产品时,需要解决“如何装配子组件”的问题。 分离了对象子组件的单独构建(Builder)和装配(Director),从而构造出复杂对象。 由于实现了构建和装配的解耦。不同的构建器、相同的装配,或者相同的构建器、不同的装配,都可以创建不同的对象。 建造者模式一般与工厂模式搭配,由工厂模式创建子组件,再有建造者模式装配。 优点 产品的建造...原创 2020-04-14 21:50:04 · 548 阅读 · 0 评论 -
GOF的23种设计模式(2)—工厂模式
工厂模式 效果 实例化对象,用工厂方法代替new。实现了创建者和调用者的分离。 将选择实现类、创建对象统一管理和控制,从而将调用者跟我们的实现类解耦。 分类 简单工厂模式:用来产生同一等级结构中的任意产品。对于增加新的产品,需要修改已有代码。 工厂方法模式:用来产生同一等级结构中的固定产品。支持增加任意产品。 抽象工厂模式:用来生产不同产品族的全部产品。对于增加新的产品,无能...原创 2020-04-14 17:34:41 · 580 阅读 · 0 评论 -
GOF的23种设计模式(3)—抽象工厂模式
抽象工厂模式 定义 提供一个创建一系列的相关的或者依赖的对象的接口,无需指定它们的具体实现类,具体的时间分别在子类工厂中产生。 用来生产不同产品族的全部产品。对于增加新的产品,无能为力;支持增加产品族。 优点 具体产品在应用层的代码隔离,无需关心创建的细节。 将一个系列的产品统一到一起创建。 缺点 规定了所有可能被创建的产品集合,产品簇中扩展新的产品困难。 增加了系统的抽象性和理解难度。...原创 2020-04-14 16:33:40 · 561 阅读 · 0 评论 -
GOF的23种设计模式(1)—单例模式
设计模式 单例模式 效果 保证一个类只有一个实例,并且提供一个访问该实例的全局访问点。 由于单例模式只生成一个实例,减少了系统性能开销,当一个对象的产生需要比较多的资源时,如读取配置、产生其他依赖对象时,则可以通过在应用启动时直接产生一个单例对象,然后永久驻留内存的方式来解决。 分类 常见实现方式 饿汉式:线程安全,调用效率高,不能延时加载。 懒汉式:线程安全,调用效率不高,可延时加载。 ...原创 2020-04-14 15:26:13 · 323 阅读 · 0 评论