Loading

摘要: 模板方法模式的定义 定义一个操作中的算法的框架,而将一些步骤延迟到子类中. 使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤. 通俗的讲,就是将子类相同的方法, 都放到其抽象父类中 类图如下: 其中, AbstractClass 叫抽象模板, 它的方法分为以下两类: 基本方法, 基本方 阅读全文
posted @ 2018-12-25 22:49 烟草的香味 阅读(2163) 评论(0) 推荐(0) 编辑
摘要: 建造者模式的定义 建造者模式也叫生成器模式, 定义如下: 将一个复杂对象的构建与它的表示分离, 使得同样的构建过程可以创建不同的表示 类图如下: 在建造者模式中, 四个角色如下: Product 产品类: 通常是实现了模板方法模式, 也就是有模板方法和基本方法 Builder 抽象建造者: 规范产品 阅读全文
posted @ 2018-12-25 19:37 烟草的香味 阅读(500) 评论(0) 推荐(0) 编辑
摘要: 抽象工厂模式的定义 定义: 为创建一组相关或互相依赖的对象提供一个接口,而且无须制定它们的具体类 抽象工厂模式的实现 两个产品族, 其类图如下: 抽象产品类代码如下: 产品A的1级和2级类代码如下: 产品B与产品A类似 抽象工厂类 AbstractCreator 的职责是定义 每个工厂要实现的功能, 阅读全文
posted @ 2018-12-25 18:09 烟草的香味 阅读(322) 评论(0) 推荐(0) 编辑
摘要: 工厂方法模式的定义 定义: 定义一个用于创建对象的接口,让子类决定实例化哪一个类. 工厂方法使一个类的实例化延迟到其子类 工厂方法模式的通用类图: 其中 Product 负责产品的共性,实现对事物最抽象的定义; Creator 为抽象创建类, 也就是抽象工厂, 具体如何创建产品类是由具体的实现工厂 阅读全文
posted @ 2018-12-25 16:53 烟草的香味 阅读(375) 评论(0) 推荐(0) 编辑
摘要: 单例模式的定义 定义: 确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例. 单例模式的通用类图如下: 单例模式的优缺点 单例模式的优点: 由于单例模式在内存中只有一个实例,减少了内存开支,特别是一个对象需要频繁的创建、销毁时,而且创建和销毁时性能又无法优化,单例模式的优势就非常明显 阅读全文
posted @ 2018-12-25 15:41 烟草的香味 阅读(348) 评论(0) 推荐(0) 编辑
摘要: 开闭原则的定义 开闭原则的定义: 一个软件实体,如类、模块和函数应该对扩展开放,对修改关闭.即一个软件实体应该通过扩展来实现变化,而不是通过修改已有的代码来实现变化. 软件实体包括一下部分 项目或软件产品中按照一定的逻辑规则划分的模块 抽象和类 方法 注意: 开闭原则对扩展开放,对修改关闭,并不意味 阅读全文
posted @ 2018-12-25 14:40 烟草的香味 阅读(2993) 评论(0) 推荐(2) 编辑
摘要: 迪米特法则的定义 迪米特法则也称为最少知识原则,一个对象应该对其他对象有最少的了解. 通俗的讲,一个类应该对自己需要耦合或调用的类知道的最少,被调用类的内部是如何复杂都和我没关系,我就知道你的这些public方法,我就调用这么多,其他的我一概不关心. 迪米特法则对类的低耦合提出了要求 1.只和朋友交 阅读全文
posted @ 2018-12-25 13:36 烟草的香味 阅读(452) 评论(0) 推荐(0) 编辑
摘要: 接口隔离原则的定义 什么是接口. 实例接口,比如定义了一个Person类,然后 Person p = new Pserson(); 产生一个实例,Person类就是 p 的接口 类接口,就是Java中使用 interface 定义的接口 什么是隔离 隔离要求将接口尽量细化,同时接口中的方法尽量少. 阅读全文
posted @ 2018-12-25 12:29 烟草的香味 阅读(385) 评论(0) 推荐(0) 编辑
摘要: 依赖倒置原则的定义 依赖倒置原则的原始定义如下: High level modules should not depend upon low level modules. Both should depend upon abstractions. Abstractions should not de 阅读全文
posted @ 2018-12-25 10:48 烟草的香味 阅读(470) 评论(0) 推荐(0) 编辑
摘要: 面对对象中的继承 优点如下: 代码共享,减少创建类的工作量,每个子类都拥有父类的方法和属性 提高代码的重用性 子类可以形如父类,但又异于父类 提高代码的可扩展性,很多开源框架的扩展接口都是通过继承父类来实现的 提高产品或项目的开放性 缺点如下: 继承是侵入性的.只要继承,就必须拥有父类的所有属性和方 阅读全文
posted @ 2018-12-25 09:43 烟草的香味 阅读(801) 评论(0) 推荐(0) 编辑