设计模式
风清扬鍀师傅
java/javascript/linux/架构
展开
-
设计模式专栏-状态模式
1.模式定义状态模式就是允许对象在内部状态发生改变时改变它的行为,对象看起来好像修改了它的类。2.应用场景状态模式主要解决的是当控制一个对象状态的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类中,可以把复杂的判断逻辑简化。3.类图4.实例状态操作接口public interface State { /** * 投币25美分 */ void insertQuarter(); /** * 退..原创 2020-05-30 17:11:29 · 160 阅读 · 0 评论 -
设计模式专栏-适配器模式
1.模式定义:将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能在一起工作的那些类可以一起工作2.应用场景客户端需要一个target(目标)接口,但是不能直接重用已经存在的adaptee(适配者)类,因为它的接口和target接口不一致,所以需要adapter(适配器)将adaptee转换为target接口。前提是target接口和已存在的适配者adaptee类所做的事情是相同或相似,只是接口不同且都不易修改。3.类图4.实例适配者类publ原创 2020-05-28 20:54:30 · 242 阅读 · 0 评论 -
设计模式专栏-命令模式
1.模式定义 命令模式把一个请求或者操作封装到一个对象中。命令模式允许系统使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。2.应用场景1.系统需要将请求调用者和请求接收者解耦,使得调用者和接收者不直接交互。2.系统需要在不同的时间指定请求、将请求排队和执行请求。3.系统需要支持命令的撤销(Undo)操作和恢复(Redo)操作。4.系统需要将一组操作组合在一起,即支持宏命令。3.类图4:实例命令对象public i..原创 2020-05-27 22:50:25 · 101 阅读 · 0 评论 -
设计模式专栏--单例模式
1.模式定义:单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。2.应用场景在计算机系统中,还有 Windows 的回收站、操作系统中的文件系统、多线程中的线程池、显卡的驱动程序对象、打印机的后台处理服务、应用程序的日志对象、数据库的连接池、网站的计数器、Web 应用的配置对象、应用程序中的对话框、系统中的缓存等常常被设计成单例。3.类图4.实例懒汉模式public class Singleton { private static Singl.原创 2020-05-25 21:42:21 · 100 阅读 · 0 评论 -
设计模式专栏--工厂模式
1.模式定义a):简单工厂:服务端根据客户端传入的不同类型进行不同对象的创建,适合比较简单的业务b):工厂模式:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行c):抽象工厂:提供一个接口用于创建用于创建相关或依赖对象的家族,而不用指定具体类2.应用场景工厂模式1. 对象的创建过程/实例化准备工作很复杂,需要初始化很多参数、查询数据库等。2.类本身有好多子类,这些类的创建过程在业务中容易发生改变,或者对类的调用容易发生改变。抽..原创 2020-05-24 13:56:18 · 120 阅读 · 0 评论 -
设计模式专栏-装饰者模式
一.模式定义在不改变原有对象的基础之上,将功能附加到对象上。提供了比继承更有弹性的替代方案(扩展原有对象功能)二.应用场景扩展一个类的功能或者给一个类添加附加职责 给一个对象动态的添加功能,或动态撤销功能。三.类图四: 实例抽象组件@Datapublic abstract class Beverage { private String description; /** * 咖啡费用计算方式 * @return */原创 2020-05-23 21:34:44 · 148 阅读 · 0 评论 -
设计模式专栏-观察者模式
1.定义定义了对象的一对多关系,这样一来,当一个对象改变状态时,他的所有依赖者都会收到通知并自动更新。2.应用场景 观察者模式多用于实现订阅功能的场景,例如微博的订阅,当我们订阅了某个人的微博账号,当这个人发布了新的消息,就会通知我们。3.类图4.实例观察者主题@Datapublic class WeatherData extends Observable { private float temperature; private float humid原创 2020-05-20 23:04:10 · 142 阅读 · 0 评论 -
设计模式专栏-策略模式
1.模式定义:策略模式(Strategy),定义了一组算法,将每个算法都封装起来,并且使它们之间可以互换策略模式是一种定义一系列算法的方法,从概念上来看,所有这些算法完成的都是相同的工作,只是实现不同,它可以以相同的方式调用所有的算法,减少了各种算法类与使用算法类之间的耦合。2.应用场景1、策略模式就是用来封装算法的,但在实践中,我们发现可以用它来封装几乎任何类型的规则,只要在分析过程中听到需要在不同时间应用不同的业务规则,就可以考虑使用策略模式处理这种变化的可能性。2、假如系统中有很多原创 2020-05-19 22:30:02 · 181 阅读 · 0 评论