走向ASP.NET架构设计——第五章:业务层模式,原则,实践(后篇)

  设计模式

  本篇文章主要是接着讨论的在业务层可以采用的或者常用的一些设计模式:

  State模式

  状态模式允许一个对象在随着它的状态变化而改变它自身的一些行为。

  在项目开发的过程中,有一些类,例如一个业务类常常是有自己的一些状态的,而且还存在状态之间的一些转换,有些状态之间是可以进行转换的,有些状态之间是不能转换的。就拿一个汽车来举例子,汽车有很多的状态:静止,启动,前进,后退,停车。而且不能由”前进”状态转为“启动”状态。

  很多朋友知道state模式的用法和结构,朋友们应该也清楚在状态之间的转换用swtich.. case的一些弊端。在项目中,很多时候就没有”一定”,”非得”要用state模式来解决类似的问题,即使可以用state模式来解决。如果变化不大,switch.. case就够用了。

  下面还是来首先来看看使用state模式的一些例子。

  还是采用电子商务为背景来举例:每一个订单都是有状态的:New(新的),Shipped(已经发货),Canceled(已取消)。我们知道一个新的订单可以被变为”取消”的状态,也可以成为”已发货”状态。但是订单不能从”已发货”状态,变为”取消”的状态。

  下面就是例子中的类图:

NET技术走向ASP.NET架构设计——第五章:业务层模式,原则,实践(后篇),转载需保留来源!

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。