设计模式
GDQ19
从事软件测试多年的老鸟。
展开
-
组合与继承改选择谁?
在面向对象编程中,有一条非常经典的设计原则,那就是:组合优于继承,多用组合少用继承。为什么不推荐使用继承?组合相比继承有哪些优势?如何判断该用组合还是继承? 继承是面向对象的四大特性之一,用来表示类之间的 is-a 关系,可以解决代码复用的问题。虽然继承有诸多作用,但继承层次过深、过复杂,也会影响到代码的可维护性。所以,对于是否应该在项目中使用继承,网上有很多争议。很多人觉得继承是一种反模式,应该...原创 2020-03-29 17:29:08 · 380 阅读 · 0 评论 -
基于接口而非实现编程
基于接口而非实现编程。这个原则非常重要,是一种非常有效的提高代码质量的手段,在平时的开发中特别经常被用到。 基于接口而非实现编程 “基于接口而非实现编程”这条原则的英文描述是:“Program to an interface, not an implementation”。我们理解这条原则的时候,千万不要一开始就与具体的编程语言挂钩,局限在编程语言的“接口”语法中。它先于很多编程语言而诞生(比如 ...原创 2020-03-29 16:48:33 · 545 阅读 · 0 评论 -
行为型-职责链模式(下)
职责链模式最常用来开发框架的过滤器和拦截器。通过 Servlet Filter、Spring Interceptor 这两个 Java开发中常用的组件,来具体讲讲它在框架开发中的应用。 Servlet FilterServlet Filter 是 Java Servlet 规范中定义的组件,翻译成中文就是过滤器,它可以实现对 HTTP 请求的过滤功能,比如鉴权、限流、记录日志、验证参数等等。因为它...原创 2020-03-29 16:20:40 · 143 阅读 · 0 评论 -
行为型-职责链模式(上)
职责链模式又复用和扩展的作用。在实际项目开发中比较常见,特别是像框架开发中,可以利用他们提供框架的扩展点,能够让框架使用不修改框架源码的情况下,基于扩展点制定框架的功能。 官方的定义是将请求的发送和接收接口,让多个接收对象都有机会处理这个请求,将这些接收对象串成一条链,并沿着这条链传递这个请求,直到链上的某个接收对象能够处理它为止。 容易理解的话来解读。在职责链模式中,多个处理器,以此处理一个请求...原创 2020-03-29 14:21:58 · 279 阅读 · 1 评论