1、简介
在日常开发中,某些对象的状态如果发生改变,对应的行为也将发生改变,那么如何在运行时根据对象的状态动态的改变对象的行为,同时不产生紧耦合关系(即使用if else或者swith所带来的紧耦合关系...(R-Read)功能各不相同,即每一类的状态文档,在运行时,他们的Read、Write、Update的代码逻辑各不相同,这个时候该如何通过状态模式编写代码,很显然,如果不用State模式,可以通过if...IStatedDocument
{
private StatedDocument _statedDocument;
///
/// 可以通过构造函数传入具体的文档...ok,可以看到state状态模式很好的完成了需求,而且每当用户提出一种新的需求,如编写一个只读只写文档,你就可以通过扩展类的方式,通过编写一个只读只写文档类,来完成他的需求,而且每次发布模块,只需要测新类型的功能是否...ok,不需要测其他的功能,因为状态模式是符合开闭原则,对扩展方法,对修改关闭.且所有的上下文共享一个State对象,各个状态文档对象通过子类的方法展现,如果状态发生改变,那么其状态下的方法全都会改变.