type
status
date
slug
summary
tags
category
icon
password
AI summary

一、定义

notion image
状态模式:对有状态的对象,把复杂的“判断逻辑”提取到不同的状态对象中,允许状态对象在其内部状态发生改变时改变其行为,不同的状态对应不同的行为

二、示例:

模拟场景: 1、人在不同的心情下,会做不同的事情。例如:开心的时候,会做开心的事情。难过的时候,会做难过的事情等。。。
notion image

传统编码方式

if判断不同的状态,执行不同的事情,一当状态变多,方法会变的冗长

状态模式设计

状态
心情抽象类
好玩心
开心
悲伤心
统一管理:MoodHandler
测试:ApiTest

UML关系图

notion image
总结: 从以上的两种⽅式对⼀个需求的实现中可以看到,在第⼆种使⽤设计模式处理后已经没有了ifelse ,代码的结构也更加清晰易于扩展。这就是设计模式的好处,可以⾮常强⼤的改变原有代码的结构,让以后的扩展和维护都变得容易些。
在实现结构的编码⽅式上可以看到这不再是⾯向过程的编程,⽽是⾯向对象的结构。并且这样的设计模式满⾜了 单⼀职责 和 开闭原则 ,当你只有满⾜这样的结构下才会发现代码的扩展是容易的,也就是增加和修改功能不会影响整体的变化。
 
JAVA【设计模式】中介模式JAVA【设计模式】模板模式