
设计模式
crazyda
彩虹般疯狂可爱
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
设计模式之享元模式
享元模式 概述 当系统中存在大量相同或者相似的对象时,享元模式时一种值得考虑的解决方案,它通过共享技术实现相同或相似的细粒度对象的复用,从而节约了内存空间,提高了系统性能 享元模式以共享的方式高效地支持大量细粒度对象的重用 ,享元对象能够做到共享的关键是区分了内部状态和外部状态, 内部状态(Intrinsic State) 时存储在享元对象内部并且不会随环境改变而改变的状态,内部状态可以共享 外...原创 2020-03-22 21:10:14 · 159 阅读 · 0 评论 -
设计模式之外观模式(门面模式)
外观模式 概述 外观模式是一种使用频率非常高的结构型设计模式,它通过引入一个外观角色来简化客户端与子系统之间的交互,为复杂的子系统调用提供一个统一的入口,使子系统与客户端的耦合度降低,且客户端调用非常方便 自己泡茶和酒馆泡茶的差别 在外观模式中,一个子系统的外部与其内部通信通过一个统一的外观类进行,外观类将客户类与子系统的内部复杂性分隔开来,使得客户类只需要与外观角色大较大,而不需要与子系统内部的...原创 2020-03-14 15:25:32 · 141 阅读 · 0 评论 -
设计模式之装饰模式
装饰模式 概述 装饰模式是一种用于替代继承的技术,它通过一种无须定义子类的方式来给对象动态增加职责, 适用对象之间的关联关系之间的继承关系. 装饰模式降低了系统的耦合度,可以动态增加或删除对象的职责,并使需要装饰的具体构件类和用于装饰的具体装饰类都可以独立变化,增加新的具体构建类和具体装饰类,都是非常方便的,符合开闭原则 装饰模式可以在不改变一个对象本身功能的基础上给对象增加额外的新行为 装饰模式...原创 2020-03-14 15:15:19 · 189 阅读 · 0 评论 -
设计模式之组合模式
组合模式 概述 组合模式关注那些包含叶子构件和容器构建的结构以及他们组织形式,在叶子构件中不包含成员对象,而容器构件中可以包含成员对象,这些对象通过递归组合可构成一个树形结构 组合模式: 组合多个对象形成树形结构以表示具有部分-整体关系的层次结构,组合模式让客户端可以同意对待单个对象和组合对象 组合模式 Component(抽象构件) 它可以是接口或抽象类,为叶子构件和容器构件对象声明接口,在该...原创 2020-03-14 12:30:15 · 198 阅读 · 0 评论 -
设计模式之桥接模式
桥接模式 概述 桥接模式是一种很适用的结构型设计模式,如果系统中的某个类存在两个独立变化的维度,通过桥接模式可以将这两个维度分离出来,使得两者可以独立拓展 蜡笔 : 颜色和大小型号 存在较强和耦合性 毛笔: 颜色和大小型号,就是两个不同的维度, 桥接模式: 将抽象部分与它实现部分解耦,使得两个能够独立变化 桥接模式 Abstracton(抽象类) 它是用于定义抽象类的接口,通常是抽象类而不是接口...原创 2020-03-14 11:53:56 · 202 阅读 · 0 评论 -
设计模式之适配器模式
适配器模式 概述 适配器模式是一种使用频率非常高的结构型设计模式,如果再系统中存在不兼容的接口,可以通过引入一个适配器来使原本因为接口不兼容而不能一起工作的两个类能够协调工作 将一个类的接口转换成客户希望的另一个接口,适配器模式让那些接口不兼容的类可以一起工作 适配器模式 Target(目标抽象类) 目标抽象类定义客户所需的接口,可以是一个抽象类或者接口,也可以是具体类,再适配器中,由于java...原创 2020-03-08 21:36:43 · 189 阅读 · 0 评论 -
设计模式之单例模式
单例模式 概述 单例模式是结构最简单的设计模式,在他的核心结构中只包含一个被称为单例的特殊类,通过单例模式可以确保系统中一个类只有一个而且改实列易于被外界访问,从而方便对实例个数进行控制,节约系统资源 确保一个类只有一个实例,并提供一个全局访问点来访问这个唯一的实例 在单例模式实现过程中需要注意的是: 单例类构造函数的可见性为private 提供一个类型为自身的静态私有成员变量 提供一个公有的静...原创 2020-03-08 20:32:23 · 131 阅读 · 0 评论 -
设计模式之原型模式
原型模式 概述 原型模式是一种特殊的创建型模式,通过复制一个已有对象来获取更多相同或者相似对象, 适用原型实例指定待创建对象的类型,并且通过复制这个原型来创建新的对象 工作原理:将一个原型对象传给要发动创建的对象,这个要发动创建的对象通过请求原型对象复制自己来实现创建过程 原型模式结构 Prototype(抽象原型类) 声明克隆方法的接口, 是所有具体原型类的公共父类,它可以是抽象类也可以是接口...原创 2020-03-02 10:14:33 · 183 阅读 · 0 评论 -
设计模式之建造者模式
建造者模式 概述 建造者模式是一种较为复杂的创建型模式,他将客户端与包含多个组成部分的复杂对象的创建过程分离,客户端无须知道复杂对象的内部组成部分与装配方式, 只需要知道所需建造者的类型即可, 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示 例如: 汽车由 方向盘,轮胎,发动机组成的 建造者模式结构 Builder(抽象建造者): 它为创建一个产品对象的各个部件指定抽象接...原创 2020-01-01 20:37:18 · 144 阅读 · 0 评论 -
设计模式之抽象工厂模式
抽象工厂模式 概述 抽象工厂模式是所有形式的工厂模式中最为抽象和最具一般性的一种形式.抽象工厂模式与工厂方法模式最大的区别在于,工厂方法模式针对的是一个产品等级结构,而抽象工厂模式需要面对多个产品等级结构 抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无须指定他们具体的类 工厂方法模式结构 AbstractFactory(抽象工厂):它声明了一组用于创建一族产品的方法,每个方法对应...原创 2019-12-22 22:02:45 · 232 阅读 · 0 评论 -
设计模式之工厂方法模式
工厂方法模式 概述 工厂方法模式:定义一个用于创建对象的接口,但是让字类决定将那个类实例化,工厂方法模式让一个类的实例化延迟到其子类 工厂方法模式结构 Product(抽象产品):它是定义产品的接口,是工厂方法模式所创建对象的超类型,也就是产品对象的公共父类 ConcreteProduct(具体产品):它实现了抽象产品接口,某种类型的具体产品由专门的具体工厂创建,具体工厂和具体产品之间一一对应 F...原创 2019-12-22 14:46:01 · 111 阅读 · 0 评论 -
设计模式之简单工厂模式
简单工厂模式 概述 定义一个工厂类,它可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类 由于简单工厂模式中用于创建实例的方法通常是静态(static)方法,因此简单工厂模式==静态工厂方法模式(Static Factory Method) 简单工厂模式结果 Factory(工厂角色) 即工厂类,负责实现创建所有产品的实例的内部逻辑,被外界调用,提供静态工厂方法,返回类型为...原创 2019-12-14 14:23:27 · 141 阅读 · 0 评论