设计模式
本专栏介绍6大设计原则以及23个设计模式
我不掉头发
知其然,后知其所以然
展开
-
设计模式-装饰模式
介绍 动态地给一个对象添加一些额外的职责。 就增加功能来说,装饰模式相比生成子类更为灵活。 类图 装饰模式的优点 装饰类和被装饰类可以独立发展,而不会相互耦合。换句话说,Component类无须知道Decorator类,Decorator类是从外部来扩展Component类的功能,而Decorator也不用知道具 体的构件。 装饰模式是继承关系的一个替代方案。我们看装饰类Decorator,不...原创 2019-12-26 17:02:01 · 135 阅读 · 0 评论 -
设计模式-建造者模式
由于标准版的建造者模式我目前还没用过(或者见过我没认出来==),这里只说一种特殊的建造者模式,它适用于当一个类构造器需要传入很多参数时,如果使用构造函数创建这个类的实例,代码可读性会非常差,而且很容易引入错误,此时就可以利用 builder模式 : public class Person { private String eyes; private String nose; ...原创 2019-12-18 10:02:24 · 122 阅读 · 0 评论 -
设计模式-模板方法模式
模板方法模式介绍 定义一个操作中的算法的框架,而将一些步骤延迟到子类中。使得子类可以不改 变一个算法的结构即可重定义该算法的某些特定步骤。通用类图如下所示: 模板方法模式确实非常简单,仅仅使用了Java的继承机制,但它是一个应用非常广泛的 模式。其中,AbstractClass叫做抽象模板,它的方法分为两类: 基本方法: 基本方法也叫做基本操作,是由子类实现的方法,并且在模板方法被调用。 模板方...原创 2019-12-17 15:47:32 · 489 阅读 · 0 评论 -
设计模式-工厂方法模式
工厂方法模式定义 定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。 工厂方法模式模板代码 AbstractFactory public abstract class AbstractFactory { public abstract <T extends Product> T createProduct(Class<T> ...原创 2019-12-17 10:38:59 · 89 阅读 · 0 评论 -
设计模式-单例模式
定义 确保某一个类只有一个实例,而且自行实例化向整个系统提供这个实例。 单例模式的使用场景 在一个系统中,要求一个类有且仅有一个对象,如果出现多个对象就会出现“不良反 应”,可以采用单例模式,具体的场景如下: 要求生成唯一序列号的环境; 在整个项目中需要一个共享访问点或共享数据,例如一个Web页面上的计数器,可以 不用把每次刷新都记录到数据库中,使用单例模式保持计数器的值,并确保是线程安全的; ...原创 2019-12-16 15:47:34 · 83 阅读 · 0 评论 -
设计模式-6大设计原则
Single Responsibility Principle:单一职责原则 Open Closed Principle:开闭原则 Liskov Substitution Principle:里氏替换原则 Law of Demeter:迪米特法则 Interface Segregation Principle:接口隔离原则 Dependence Inversion Principle:依赖倒置原...原创 2019-12-16 14:21:51 · 144 阅读 · 0 评论