设计模式 建造者模式 builder


建造者模式使用建造者模式 一次性构建出一个对象的所有属性。构建时使用链式的结构构建对象。通常的做法是在对象里使用内部类叫做build,把外部对象的属性作为方法声明出来并且有一个方法叫做build 返回对象本身。还有一个好处,举个例子我这里构建了一个Person 的类,我现在想更改他的年龄,但是不想修

设计模式 访问者模式 visitor


访问者模式当一个策略(比如价格策略)根据调用者而改变时。让不同的调用者对象实现接口,不修改访问的方法,而修改访问者。visitor 模式 适合的是结构固定的模型。

设计模式 代理模式


代理模式静态代理 基于组合 和 接口public interface ProxyInterface { void apply();}public class Base implements ProxyInterface { @Override public void apply()

java 设计模式 观察者模式


观察者模式实现一在被观察的方法里,直接调用观察者的方法,实际业务场景中 传个表达式进来更灵活。实现二定义接口声明 被观察的动作,然后各个观察着去实现这个接口,定义行为。被观察者持有观察者的list,并在事件执行后调用他们。通常观察者包含三个内容 多个观察者以及其事件,被观察者,interface(声

java 设计模式 ChainOfResponsibility 责任链模式


责任链模式责任链模式,顾名思义主要应用场景为一步一步往下走,比如审核。public class Main { public static class HandlerDTO { private String msg; public HandlerDTO(String

java 设计模式 Decorator装饰器模式


Decorator感觉这个和ddd 的领域对象非常像订单刚开始比较简单只有购买人,物品信息等现在需要给订单添加优惠券信息,那么就把优惠券的对象 加到订单对象中,让订单对象持有优惠券对象。

java 设计模式 Mediator调停者和Facade门面


Facade模式门面模式其实就是封装,相当于提供的service 接口/rpc 接口我们会组装一系列行为在一个方法里,别人只需要调用我这个方法,或接口就可以了。Mediator调停者按照业务场景来说就是我们有一堆微服务,订单服务,支付服务,财务服务,审核服务,这些服务之间不做任何交互,而使用调停者服

java 设计模式 strategy 策略模式 && 工厂模式 && 模版模式


策略模式利用多态特性 根据不同的入参实现策略public static class Sort{ Integer sort(Integer i){} Integer sort(Double i){} Integer sort(Cat i){}}缺点很明显,有一堆重复代码,代码冗余严重。未完待续

java 设计模式 Singleton 的几种实现


简单实用的方法public class Singleton1 { private static final Singleton1 INSTANCE = new Singleton1(); private Singleton1() { System.out.println(&