C#状态模式——解决方法过长问题

本文介绍了C#中如何使用状态模式解决方法过长问题,详细阐述了状态模式的结构,包括Context、State和ConcreteState的角色,并通过电灯状态的例子进行实践。同时对比了状态模式与策略模式的区别,指出状态模式强调状态变化的自动切换,而策略模式允许用户自选策略。
摘要由CSDN通过智能技术生成

         上周进京赶考GCT(硕士专业学位研究生入学资格考试),需要提前动身去看考场,顺便和同伴一起在北京找个酒店住下,安顿好之后,当躺下的之后笔者想的不是第二天如何应考,而是脑袋了充满了状态,状态,状态,状态模式,可能这几天和小伙伴们讨论设计模式比较多缘故吧。此文是为记录当时的想法,之后加以联系以前所学并实践后写出来的。

一、概述

         1.摘要:

          状态模式允许一个对象在其内部状态改变时改变它的行为,使对象看起来似乎修改了它的类。

         2.解决的问题:

          在软件开发过程中,应用程序可能会根据不同的情况作出不同的处理。最直接的解决方案是将这些所有可能发生的情况全都考虑到,然后使用(if else(switch case)语句来做状态判断来进行不同情况的处理。但是编程中如果一个方法中有很多判断就是坏味道了。假如我有10个、100个状态,如果还是用(if else(switch case)来做判断那岂不是会累死?再假如我需要增加或修改一个状态,可能得需要大刀阔斧地进行修改,而程序的可读性、扩展性也会变得很弱,稍一部小心可能就会出错,维护起来也会很麻烦。这下我们就可以考虑使用状态模式解决此问题,只修改自身的状态即可。

         3.结构如下:

                    

评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值