随笔分类 -  设计模式

摘要:在不改变原始类(或叫被代理类)代码的情况下,通过引入代理类来给原始类附加功能,就是所谓的在外面加一层。 普通代理 //功能接口类public interface IUserController { UserVo login(String telephone, String password); Us 阅读全文
posted @ 2022-06-09 15:11 皮肤黝黑的小白 阅读(47) 评论(0) 推荐(0) 编辑
摘要:什么时候该用工厂模式?相对于直接 new 来创建对象,用工厂模式来创建究竟有什么好处呢? 简单工厂(Simple Factory) 什么是简单工厂,通过一个例子做介绍: 根据配置文件的后缀(json、xml、yaml、properties),选择不同的解析器(JsonRuleConfigParser 阅读全文
posted @ 2022-06-08 16:04 皮肤黝黑的小白 阅读(41) 评论(0) 推荐(0) 编辑
摘要:职责链模式的原理和实现 将请求的发送和接收解耦,让多个接收对象都有机会处理这个请求。将这些接收对象串成一条链,并沿着这条链传递这个请求,直到链上的某个接收对象能够处理它为止。 在职责链模式中,多个处理器一次处理同一个请求,形成一个处理链条,链条上的每个处理器各司其职,所以叫职责链模式。 职责链模式有 阅读全文
posted @ 2022-05-27 18:03 皮肤黝黑的小白 阅读(36) 评论(0) 推荐(0) 编辑
摘要:策略模式:定义一族算法类,将每个算法封装起来,让他们可以相互替换。策略模式可以使算法的变化独立于他们的使用者。 策略模式是基于接口编程的,一个策略接口和一组策略实现,可以自由替换实现: // 策略的定义 public interface DiscountStrategy { double calDi 阅读全文
posted @ 2022-04-19 14:12 皮肤黝黑的小白 阅读(31) 评论(0) 推荐(0) 编辑
摘要:模板方法模式:在一个方法中定义一个算法骨架,并将某些步骤推迟到子类中实现。模板方法模式可以让子类在不改变算法整体结构的情况下,重新定义算法中的某些步骤。 模板模式有两大作用:复用和扩展 复用 模板模式把一个算法中不变的部分抽象到父类的模板方法templetMethod()中,可变的部分在子类各自的m 阅读全文
posted @ 2022-04-14 18:00 皮肤黝黑的小白 阅读(34) 评论(0) 推荐(0) 编辑
摘要:观察者模式(发布订阅模式),在对象之间定义一个一对多的依赖,当一个对象状态改变的时候,所有依赖的对象都会自动收到通知。 现在有一个注册后发送欢迎使用的功能,实现如下: public class UserService{ private SendMessageService sendMessageSe 阅读全文
posted @ 2022-04-08 09:02 皮肤黝黑的小白 阅读(33) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示