Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Inheritance 一种适合该案例的设计模式_Inheritance_Design Patterns_Interface_Uml_Class Diagram - Fatal编程技术网

Inheritance 一种适合该案例的设计模式

Inheritance 一种适合该案例的设计模式,inheritance,design-patterns,interface,uml,class-diagram,Inheritance,Design Patterns,Interface,Uml,Class Diagram,我有下面的UML图(如果图片中没有太多信息,那就很抱歉) 所以我得到的是 通过RE类实现的IRE接口。 由RD类实现的IRD接口(后者扩展了RE)。 由RM类实现的IRM接口(后者扩展了RE) 那么,是否有合适的设计模式来表示此digaram 提前谢谢。这不是正确的方法 首先,设计模式并不表示或实现UML类图。反过来说:UML图表示设计模式的结构 根据克里斯托弗·亚历山大(Christopher Alexander)的说法,Gamma等人的灵感来源是一种设计模式: 描述在中反复出现的问题 然后

我有下面的UML图(如果图片中没有太多信息,那就很抱歉)

所以我得到的是

通过RE类实现的IRE接口。 由RD类实现的IRD接口(后者扩展了RE)。 由RM类实现的IRM接口(后者扩展了RE)

那么,是否有合适的设计模式来表示此digaram

提前谢谢。

这不是正确的方法 首先,设计模式并不表示或实现UML类图。反过来说:UML图表示设计模式的结构

根据克里斯托弗·亚历山大(Christopher Alexander)的说法,Gamma等人的灵感来源是一种设计模式:

描述在中反复出现的问题 然后描述了解决方案的核心 问题,以这样一种方式,您可以使用此解决方案数百万次 没有用同样的方法做两次就结束了

UML类图表示解决方案的结构。它不告诉解决方案试图解决什么问题,也不告诉如何解决它。此外,一些设计模式具有非常相似的结构,只有行为或意图有助于产生差异

结构相似性 这就是说,如果您的图表应该表示一种设计模式,但您不记得是哪一种,那么它可能是基于继承的变体:

  • RE_Impl
    是adaptee,这是一个具有现有接口的类,需要进行调整
  • IRM
    IRD
    是重组必须适应的目标接口
  • RM_Impl
    RD_Impl
    是使自适应工作的适配器
然而,这只是猜测,因为模式不是由其结构定义的。适配器的目的是将一个接口转换为另一个接口。因此,如果接口
IRM
IRD
提供的内容与
IRE
完全无关,那么它根本就不是适配器。

这不是正确的方法 首先,设计模式并不表示或实现UML类图。反过来说:UML图表示设计模式的结构

根据克里斯托弗·亚历山大(Christopher Alexander)的说法,Gamma等人的灵感来源是一种设计模式:

描述在中反复出现的问题 然后描述了解决方案的核心 问题,以这样一种方式,您可以使用此解决方案数百万次 没有用同样的方法做两次就结束了

UML类图表示解决方案的结构。它不告诉解决方案试图解决什么问题,也不告诉如何解决它。此外,一些设计模式具有非常相似的结构,只有行为或意图有助于产生差异

结构相似性 这就是说,如果您的图表应该表示一种设计模式,但您不记得是哪一种,那么它可能是基于继承的变体:

  • RE_Impl
    是adaptee,这是一个具有现有接口的类,需要进行调整
  • IRM
    IRD
    是重组必须适应的目标接口
  • RM_Impl
    RD_Impl
    是使自适应工作的适配器

然而,这只是猜测,因为模式不是由其结构定义的。适配器的目的是将一个接口转换为另一个接口。因此,如果接口
IRM
IRD
提供了与
IRE
完全无关的东西,那么它根本就不是适配器。

为什么需要一个模式?这是你的设计,这就是它。你为什么想要一个图案?这是你的设计,也是你的设计。正如你所说,IRM和IRD提供的是彼此无关的不同功能,它们只是为了丰富RE_Iml类,所以我将提供RD_Impl&RM_Impl。正如你所说,IRM和IRD提供的是彼此无关的不同功能,他们只是为了丰富RE_Iml课程,所以我会有RD_Impl&RM_Impl。