
C#代码详解23种设计模式之第19篇:状态模式(含代码)
5星
- 浏览量: 0
- 大小:None
- 文件类型:ZIP
简介:
本文详细解析了C#编程中的第19种设计模式——状态模式,并提供了相应的代码示例。通过实际编码帮助读者理解和应用这一模式,提高软件设计质量。
在上一篇文章里提到可以利用状态者模式与观察者模式来解决中介者模式存在的问题,在本段落中将首先通过银行账户的例子讲解如何使用状态者模式,并借此让读者对该模式有更深入的理解,然后用该模式处理前文提出的问题。
1. 状态者模式介绍
每个对象都有其特定的状态,每种状态下又对应一系列行为。当一个对象拥有多种状态时,则会涉及许多不同的操作逻辑。这些条件判断和根据不同情况执行的行为会导致代码中出现复杂的多分支语句,并且添加新的状态需要修改现有代码。
这种设计违背了开闭原则(对扩展开放、对修改关闭),因此引入了状态模式来解决这类问题。该模式将每种状态下对应的操作封装成独立的对象,这样对象的状态变化不再依赖其内部的实现逻辑。
2. 状态者模式定义
状态模式允许一个对象在其内部状态改变时自动调整自身行为表现,就好像它改变了所属类一样(例如:SilveStater(无利息)、GoldState(有利息)和RedState(赤字))。
3. 状态者模式结构
既然状态者模式是对已有对象的状态进行抽象,则自然需要定义一个表示通用状态的抽象基类以及具体实现各种特定状态的具体子类。同时,原有对象需保存这些状态实例并能够根据当前情况切换它们的行为表现。
全部评论 (0)
还没有任何评论哟~


