摘要: 一、定义 抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无需指定一个具体的类。 二、优点 1.方便更换产品的类型,由于具体工厂类在一个应用只需要初始化的时候出现一次,使得改变一个应用的具体工厂变得非常容易,只需改变具体的工厂即可使用不同的产品配置。 2.让具体的创建实例过程与客户端分离 阅读全文
posted @ 2020-01-16 00:04 兮云飞扬 阅读(91) 评论(0) 推荐(0) 编辑
摘要: 一、定义: 观察者模式(Observer)又叫做发布 订阅模式(Publish/Subscribe),定义了一种一对多的依赖模式,让多个观察者对象同时监听某一个主题对象,这个主题对象在状态发生变化时,会通知所有观察者对象,使他们能够自动更新自己。 二、示例代码: 三、利用委托类实现 上述例子的问题在 阅读全文
posted @ 2020-01-06 18:51 兮云飞扬 阅读(273) 评论(0) 推荐(0) 编辑
摘要: 一、定义:建造者模式(builder):将一个复杂的对象构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 二、示例代码: 阅读全文
posted @ 2019-12-12 01:08 兮云飞扬 阅读(83) 评论(0) 推荐(0) 编辑
摘要: 一、定义:外观模式(facade)。为子系统的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 二、特点:定义系统的入口,在客户端类和复杂类之间建立一层,这一层将调用顺序、依赖关系等处理好。日志框架Slf4j是外观模式的典型应用,其作为外观层,为日志的具体实 阅读全文
posted @ 2019-12-07 01:20 兮云飞扬 阅读(86) 评论(0) 推荐(0) 编辑
摘要: 一、定义: ​ 定义一个操作的算法的骨架,而将一些不确定的业务,抽象成一个抽象方法。延迟到子类去具体的实现它。模板方法使得子类可以不改变一个算法的结构即可重定义改算法的某些特定步骤。 二、示例代码: public abstract class AbstractClass { public void 阅读全文
posted @ 2019-12-03 02:47 兮云飞扬 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 一、定义: ​ 原型模式,用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 二、特点: ​ 一般在初始化信息不发生变化的情况下,克隆是最好的方法。这既隐藏了对象创建的细节,又对性能是大大的提高。可以不用重新初始化对象,而是动态地获得对象运行时的状态。 浅复制:只复制它本身和其中包含的 阅读全文
posted @ 2019-12-03 01:30 兮云飞扬 阅读(69) 评论(0) 推荐(0) 编辑
摘要: 一、定义: 工厂方法模式,定义一个用于创建对象的接口,让子类决定实例化哪个类。工厂方法使一个类的实例化延迟到其子类。 二、示例代码: 阅读全文
posted @ 2019-12-01 02:49 兮云飞扬 阅读(99) 评论(0) 推荐(0) 编辑
摘要: 一、定义:为其他对象提供一种代理以控制对这个对象的访问。 二、示例代码: 阅读全文
posted @ 2019-11-30 02:02 兮云飞扬 阅读(75) 评论(0) 推荐(0) 编辑
摘要: 一、定义 动态的给一个对象增加额外的职责。 二、特点 结构型模式,作为现有类的一个包装。在不想增加很多子类的情况下拓展类。允许向一个现有的对象添加新的功能,同时又不改变其结构。 三、示例代码: 阅读全文
posted @ 2019-11-28 19:00 兮云飞扬 阅读(62) 评论(0) 推荐(0) 编辑
摘要: 单一职责原则 开放封闭原则 依赖倒转原则 里氏替换原则 迪米特法则 合成/聚合复用原则(CARP) 一、单一职责原则 定义:就一个类而言,应该仅有一个引起它变化的原因。 二、开放封闭原则 软件实体(类、接口、方法等)应该对拓展开放,对修改关闭。 三、依赖倒转原则 细节依赖于抽象,而不是抽象依赖于细节 阅读全文
posted @ 2019-11-25 01:32 兮云飞扬 阅读(99) 评论(0) 推荐(0) 编辑