随笔分类 - 设计模式
摘要:观察者模式又叫 发布--订阅模式 其中Observer是抽象订阅者(观察者)(一般为接口),Subject是抽象的发布者(被观察者),可以看到Subject实现了三个方法,Attach表示把一个订阅对象添加到列表中,Detach表示把一个订阅对象从列表中移除。Observer有一个update方法,
阅读全文
摘要:创建者模式又叫建造者模式,是将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。创建者模式隐藏了复杂对象的创建过程,它把复杂对象的创建过程加以抽象,通过子类继承或者重载的方式,动态的创建具有复合属性的对象。 简单来说,就是一个对象可能很复杂,但它的创建流程固定,只是注入的值不
阅读全文
摘要:#模板方法模式 模板方法模式在面向对象中经常使用,只不过我们可能没有意识。 模板方法模式指的是把一些公用的方法放在父类,一些方法放在子类中实现 举个🌰 父类Animals public abstract class Animals{ private String name; public void
阅读全文
摘要:#原型模式 原型模式就是通过clone()方法,进行拷贝原型对象。需要注意的是我们通过clone()方法获得的对象是可以定制的。 举个例子: 假如我们有个Person类 public class Person{ String name; int age; public Person(String n
阅读全文
摘要:#简单工厂模式 简单工厂模式会定义一个工厂类,会根据不同的参数返回不同类的实例(一般利用多态返回父类),但这些类都有一个共同的父类。 现在想一个例子:如果我们要实现一个简单的计数器(+,-,*,/)应该怎么做? 第一种方法:就是把所有的方法揉在一起,根据传入的运算符进行相应计算 switch (op
阅读全文
摘要:单例模式 某个类只能存在一个对象实例,且该类只提供一个取得其对象实例的方法(静态方法) 使用场景:需要频繁创建和销毁对象或创建对象消耗过多又经常用到比如数据源,session工厂 饿汉式(静态常量) 1.构造器私有化(防止外部new) 2.类的内部创建对象(private,final,static)
阅读全文
摘要:#静态代理 以下是一个类代表坦克,接口有一个方法代表坦克移动 public class Tank implements MoveService{ @Override public void move() { System.out.println("Tank start move "); } } in
阅读全文