业务资源管理模式语言04
示例:
图5 表示QualifyTheResource 模式的一个实例,其中其中“Product(产品)”扮演“Resource(资源)”的角色,其中“Manufacturer(制造商)”扮演“Resource Type(资源类型)”角色。
图5——QualifyTheResource 模式实例
变体:
为了实现多种分类,资源可以有多种分类方式,例如在会计系统中。为实现这种需求,可以根据分类的不同角度,引入新的类。例如,在录象带出租中,除了上面提到的分类方式,可能存在另一种分类方式,按出租率进行分类(例如,“A”表示经常出租,“B”表示出租率中等,“C”表示很少有人租)。根据这种分类就可以确定出租价。
相关模式:
“QualifyTheResource”是“Type-Object”模式[Joh 98]和Accountability Type[Fow 97]的一个应用。
下一模式:
完成了QualifyTheResource(或者没完成),可以进行QuatifyTheResource(3)(量化资源)。
模式3 ——QuantifyTheResource(量化资源)
上下文
你已经确定了系统所要处理的所有资源并且可能也确定了资源相关的性质。现在需要考虑的一个重要问题是资源的量化形式,在许多实际应用中,跟踪资源的每个实例非常重要,因为它们每个个体会独立处理。例如,图书馆中的一本图书可能有多个样本,可以借给不同的读者。一些应用处理资源的量,在这些应用中,不需要知道被处理的具体的资源实例。例如,买了一定数量的铁。在其它应用中,资源作为一个整体处理,例如,需要维护的汽车或给病人看病的医生。
问题:
如何量化资源?
约束:
确切地知道应用系统采用什么量化方式在分析过程中非常重要。在这个问题上的错误结果会危及以后的进展。
在需要跟踪资源的特定实例的情况下,冗余信息可能储存在一个资源的多个实例中,但这种冗余是非常不明智的。
为了避免冗余,创建一个新类用来储存相同资源所有实例的信息。但是这种方法的代价是需要处理两个类而不是一个,例如,需要更多的处理时间。
结论:
确定如何处理资源,并采用三种QuantifyTheResource 模式中的一种建立量化模式。
解决方案:
针对这个问题,根据量化方式的不同有三种略有区别的解决方案。当识别资源实例非常重要时,需要创建一个新的附加类“ResourceInstance(资源实例)”。属性“Status(状态)”被加到“ResourceInstance(资源实例)”类中,为了控制其独立的生命周期。例如,一本书的样本的生命周期状态包括四种可能的状态:“可以使用”、“预订”、“借出”、“预订并且借出”。
当资源采用特定量进行管理时,为了处理总量控制,属性“Quantity in stock(存货量)”应该被加到“Resource(资源中)”。在这种情况下,属性“Status(状态)”不适用,因为这种情况下,系统一次处理大量的资源,不能独立地控制一个资源的生命周期。