![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 69
瘦不下来的吴彦祖
喜欢历史文学,爱好YY小说不喜欢写代码玩算法的程序员
展开
-
简单工厂模式
简单工厂模式(静态工厂模式)(1)关系图:(2)优点:1.客户端无需知道创建产品的具体逻辑,只需要知道产品创建的参数即可2.可以在不修改客户端代码的情况下添加新的产品和修改旧的产品(3)缺点1.添加新产品需要修改工厂类的逻辑,不利于系统扩展和维护,不符合开闭原则2.简单工厂模式使用了静态工厂方法,造成工厂角色无法形成基于继承的等级结构(4)Java代码实例①Factorypublic class ...原创 2018-04-30 23:09:51 · 120 阅读 · 0 评论 -
工厂方法模式
工厂方法模式(1)关系图(2)优点1.更符合开-闭原则:新增一种产品时,只需要增加相应的具体产品类和相应的工厂子类即可2.符合单一职责原则:每个具体工厂类只负责创建对应的产品3. 不使用静态工厂方法,可以形成基于继承的等级结构。4. 工厂模式可以说是简单工厂模式的进一步抽象和拓展,在保留了简单工厂的封装优点的同时,让扩展变得简单,让继承变得可行,增加了多态性的体现。(3)缺点1.添加新产品时,除了...原创 2018-04-30 23:25:33 · 121 阅读 · 0 评论 -
抽象工厂模式
抽象工厂模式(1)关系图(2)优点1.具有工厂方法模式解耦的优点。2. 工厂模式针对的是一个产品等级结构,抽象工厂模式针对的是面向多个产品等级结构的。(3)缺点1.产品族的扩展将是一件十分费力的事情,假如产品族中需要增加一个新的产品,则几乎所有的工厂类都需要进行修改。(4)代码ProductA:public interface Air_conditioner { void work(); }p...原创 2018-04-30 23:48:16 · 134 阅读 · 0 评论 -
建造者模式
建造者模式(1)关系图(2)优点1.将产品本身与产品创建过程进行解耦2. 将复杂产品的创建步骤分解在不同的方法中,使得创建过程更加清晰3. 增加新的具体建造者无需修改原有类库的代码,易于拓展,符合“开闭原则“(3)缺点1. 建造者模式所创建的产品一般具有较多的共同点,其组成部分相似;如果产品之间的差异性很大,则不适合使用建造者模式,因此其使用范围受到一定的限制2. 如果产品的内部变化复杂,可能会导...原创 2018-05-01 12:55:27 · 196 阅读 · 0 评论 -
单例模式
单例模式(1)特点①单例类只能有一个实例②单例类必须自己创建自己的实例,因为构造方法是私有的,无法在外部被实例化③单例类必须给其他所有对象提供这一实例,也就是说要把getInstance这个方法变成公有④单例模式的出现是为了避免不一致现象的出现1.懒汉式单例模式1. //懒汉式单例类.在第一次调用的时候实例化自己 2. public class Singleton { 3. ...原创 2018-05-01 19:28:51 · 176 阅读 · 0 评论 -
适配器模式
适配器模式(1)定义:因某些原因不能在一起工作的两个类可以协同工作,目的是兼容性。(2)分类:①类适配器模式1.关系图:2.优点:适配器集继承了源数据类的方法,可以重写其中的方法,增加灵活性3.缺点:要求输出数据的必须是接口,具有一定局限性;违反合成复用原则4.代码/** * 这是个用户类 * 使用适配器 * 可以想象成手机 * @author Administrator * */p...原创 2018-05-02 14:32:49 · 127 阅读 · 0 评论 -
外观模式(Facade)
外观模式(Facade)Façade类是把各个子系统的接口做了进一步抽象,让客户调用,客户只能和façade交互,不能直接和子系统交互。1.关系图:2.优点(1)松散耦合:客户端和子系统之间解耦,子系统的内部模块更容易扩展和维护(2)简单易用,客户端根本不知道子系统内部的实现构成,也无需关心(3)更好的划分访问层次,子系统将用于外部访问的功能集中于façade中,在客户端的使用中,很好的隐藏了子系...原创 2018-05-02 14:37:33 · 173 阅读 · 0 评论