
设计模式
白首码农
这个作者很懒,什么都没留下…
展开
-
设计模式之状态模式
基本概念 对有状态的对象,把复杂的“判断逻辑”提取到不同的状态对象中,允许状态对象在其内部状态发生改变时改变其行为 使用场景 问题 如下图,业务需要对不同的条件做不同的处理,如果这个处理的逻辑比较繁琐或者是判断的条件比较多的话,全写在一个方法里明显不容易维护。 调整 将条件(状态)相关的逻辑抽离到具体的类里,如下图。 示例代码 public class StatePatternTest { public static void main(String[] args) ..原创 2021-10-11 18:34:18 · 78 阅读 · 0 评论 -
设计模式之装饰器模式
基本概念 指在不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能)。 应用场景 问题 如图,因业务需要,在调用operate()方法之前或者之后,需要做一些额外的操作,如果直接改动现有代码,明显不符合开闭原则。 调整 如下图,增加一个Decorator类,它的operate方法会在实际operate方法之外增加一些额外的操作。 示例代码 public class DecoratorPatternTest { public static void m.原创 2021-10-11 17:36:00 · 67 阅读 · 0 评论 -
设计模式之外观模式
基本概念 外观(Facade)模式又叫作门面模式,是一种通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。该模式对外有一个统一接口,外部应用程序不用关心内部子系统的具体细节,这样会大大降低应用程序的复杂度,提高了程序的可维护性。 使用场景 问题 客户端在完成某个业务操作时需要调用多个子系统(服务)中的方法,它需要对每个方法的职能有清晰准确认识才能正确使用,很明显这个不符合迪米特法则。 调整 在Client端与子系统之间增加一个外观类,如下图 在客..原创 2021-10-11 16:39:42 · 127 阅读 · 0 评论