04 2019 档案
摘要:概念: 桥梁模式:将抽象解藕,使得这两个能独立的变化。桥梁模式也叫桥接模式。 实现: 定义材质 材质的两种实现 定义抽象类型的书 抽象书的两种实现 测试与结果 测试 结果 小说都用A4来制作。 工具书都是A4制作的 工具书都是A8制作的分析: 1.看着代码应该就很好理解,有没有一种感觉,抽象类是此岸
阅读全文
摘要:概念: 组合模式:将对象组合成属性结构,以表示“部分——整体“的层次结构,是的用户对单个对象和组合对象的使用具有一致性。实现: 定义一个书架 定义一个存放书的空间 要被存放的书 分析: 1.其实这个倒不是很难,但是理解起来不是那么直观,可能因为类名会影响思维逻辑,但不影响用文字描述,方便理解: a.
阅读全文
摘要:概念: 适配器模式:讲一个类的接口变换成客户端所期待的另一个接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。其实也就是概念看上去有点吓人,但其实这是最简单的模式了。实现: 一个类的接口 一个与接口无关的类 适配器(因接口不匹配而无法在一起工作的两个类能够在一起工作) 分析: 1.
阅读全文
摘要:概念: 装饰模式:动态的为一些对象添加一些职责。即就是动态的为一些对象添加一些方法。实现: 定义作者接口 小说作家类 装饰者接口 小说装饰者 分析: 1.有没有一种感觉,这玩意儿和静态代理没啥区别啊。其实差别是不大,都是为了添加职责,但有一种场景会将你分清楚两者的区别,也算是这两者的本质区别。如果一
阅读全文
摘要:概念: 代理模式:为其他对象提供一种代理,以控制对这个对象的访问。 在代理模式中又分为两种:静态代理和动态代理。代理模式一般默认指静态代理模式。 静态代理模式:该类型有具体的实现,即就是存在该类型的class文件。 动态代理模式:及就是只有接口规范,没有具体的实现。也不存在class文件。 实现:
阅读全文
摘要:概念: 原型模式:使用原型实例指定要创建对象的类型,并通过复制此原型创建新的对象。这句话怎么这么绕呢?没办法英文翻译过来就这样,那是个什么意思呢?简单来说,就是我们定义一个类型,给这个类型一个实例化对象,然后就可以用这个对象去复制新的对象了。 原型模式一般来说分为两种:浅克隆模式和深克隆模式。之所以
阅读全文
摘要:概念: 建造者模式:将一个结构的建造和它的表示分离,使得同样的建造过程可以创建不同的表示。 实现: 定义书籍接口: 书籍类别:(小说类书籍、工具类书籍...) 定义创建者接口: 创建者类别: 分析:通过代码可以简单的分析一下,有没有一种很熟悉的感觉,但又好像觉得不一样,这就对了,设计模式中很多都是这
阅读全文
摘要:概念: 抽象工厂模式:为创建一组相关或相互依赖的对象提供一组接口,而且无需指定它们的具体类。 实现: 定义书籍接口: 定义工厂接口: 书籍类别:(小说类书籍、工具类书籍...) 工厂类别: 分析:通过代码可以简单的分析一下,有没有觉得和工厂方法模式几乎差不多,就是里面装的方法多了一点,但仔细体会,会
阅读全文
摘要:概念: 工厂方法模式:定义一个创建对象的接口,让子类决定实例化哪个类。工厂方法使一个类的实例化延迟到了子类。即在实例化对象时,我们不用自己new一个对象,而是将这个过程由另一个类通过反射或者new的方式创建对象并返回。 实现: 定义书籍接口 定义工厂接口 书籍类别(小说书籍、工具书籍...) 工厂类
阅读全文
摘要:概念: 单例模式:确保一个类只有一个实例化对象。即就是一个系统中只有一个实体对象。 在单例模式中又分为两种模式:饿汉式单例和懒汉式单例。 饿汉式单例:在类加载的时候初始化实例。 懒汉式单例:在第一次引用的时候初始化实例。实现: 饿汉式单例: 懒汉式单例: 分析:上面的实现中,我也尽可能的简单明了的写
阅读全文
摘要:完整代码见github:https://github.com/BenMario315/design-patterns 常用的设计模式可概括为23中,根据其特点可分类为三大类型: 一、创建型:1.单例模式,2.工厂方法模式,3.抽象工厂模式,4.建造者模式,5.原型模式 二、结构型:6.代理模式,7.
阅读全文