如果每个子类都使用相同的东西,则与母类的UML类图关系

时间:2018-10-05 16:50:14

标签: singleton uml class-diagram

我有两个问题:

  1. 我有一个具有属性Layout的Singleton类,可用于创建抽象类的子对象(下面的示例)。 abstract类具有一个抽象方法,其中布局文件作为变量提供。是否将那个Singleton类连接到抽象类或每个孩子?下面的示例使用伪代码编写:

    public class SingletonClass
    {
        public static Instance;
        public var[,] Layout;
    }
    
    public abstract class AbstractClass
    {
        public abstract void DoSomething(var[,] Layout);
    }
    
    public class ClassA : AbstractClass
    {
        public override void  DoSomething(var[,] Layout) { some code }
    }
    
    public class ClassB : AbstractClass
    {
        public override void  DoSomething(var[,] Layout) { some other code }
    }
    
  2. 是否甚至需要或“更干净”的将Layout作为方法中的变量,还是可以从单例类中调用Layout呢?

1 个答案:

答案 0 :(得分:1)

以下UML与您的代码等效

enter image description here

在以下假设下:InstanceLayout被假定为类似类的属性。

SingletonClass具有两个自有属性(用大点表示):类型layout的公共Layout和类型instance的{​​{1}}(很抽象,因此是斜体)。后者稍后将保存具体AbstractClassClassA的实例。

设计是否正确取决于。基本上没有错。