适合案例的设计模式
A Design pattern suitable for the case
我有下面的UML图(如果图片没有太多信息,请见谅)。
所以我有的是
IRE 接口,由 RE class 实现。
由 RD class 实现的 IRD 接口(后者扩展了 RE)。
由 RM class 实现的 IRM 接口(后者扩展了 RE)。
那么有没有合适的Design Pattern来表示这个digaram呢?
提前致谢。
这不是正确的方法
首先,设计模式不代表或实现 UML class 图。反过来说:UML 图表示设计模式的结构。
根据 Christopher Alexander 的说法,Gamma 等人的灵感来源。一个设计模式:
describes a problem which occurs over and over again in
our environment, and then describes the core of the solution to that
problem, in such a way that you can use this solution million times
over without ever doing it the same way twice
UML class 图表示解决方案的结构。它没有说明解决方案试图解决什么问题,也没有说明解决方案将如何解决。此外,一些设计模式具有非常相似的结构,只有行为或意图才能有所不同。
结构相似
话虽这么说,如果你的图表应该代表一种设计模式,但你不记得是哪一个,它可能是 adapter,等等正是基于继承的变体:
RE_Impl
为适配对象,即class已有接口,需要适配
IRM
和IRD
是RE_Impl需要适配的目标接口。
RM_Impl
和 RD_Impl
是使适配工作的适配器。
然而,这只是一个猜测,因为模式不是由其结构定义的。适配器的目的是将一个接口转换为另一个接口。因此,如果接口 IRM
和 IRD
提供的东西与 IRE
完全无关,那么它根本就不是适配器。
我有下面的UML图(如果图片没有太多信息,请见谅)。
IRE 接口,由 RE class 实现。 由 RD class 实现的 IRD 接口(后者扩展了 RE)。 由 RM class 实现的 IRM 接口(后者扩展了 RE)。
那么有没有合适的Design Pattern来表示这个digaram呢?
提前致谢。
这不是正确的方法
首先,设计模式不代表或实现 UML class 图。反过来说:UML 图表示设计模式的结构。
根据 Christopher Alexander 的说法,Gamma 等人的灵感来源。一个设计模式:
describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem, in such a way that you can use this solution million times over without ever doing it the same way twice
UML class 图表示解决方案的结构。它没有说明解决方案试图解决什么问题,也没有说明解决方案将如何解决。此外,一些设计模式具有非常相似的结构,只有行为或意图才能有所不同。
结构相似
话虽这么说,如果你的图表应该代表一种设计模式,但你不记得是哪一个,它可能是 adapter,等等正是基于继承的变体:
RE_Impl
为适配对象,即class已有接口,需要适配IRM
和IRD
是RE_Impl需要适配的目标接口。RM_Impl
和RD_Impl
是使适配工作的适配器。
然而,这只是一个猜测,因为模式不是由其结构定义的。适配器的目的是将一个接口转换为另一个接口。因此,如果接口 IRM
和 IRD
提供的东西与 IRE
完全无关,那么它根本就不是适配器。