Отношение диаграммы класса UML с классом матери, если каждый дочерний класс использует одно и то же - PullRequest
0 голосов
/ 05 октября 2018

У меня есть два вопроса:

  1. У меня есть класс Singleton со свойством Layout, которое я использую при создании дочерних объектов абстрактного класса (пример ниже).Абстрактный класс имеет абстрактный метод, в котором файл макета задан как переменная.Должен ли я связать этот класс 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 голосов
/ 06 октября 2018

Следующий UML является эквивалентом вашего кода

enter image description here

при следующих допущениях: Instance и Layout считаются атрибутамианалогичных классов.

SingletonClass имеет два собственных атрибута (обозначены большими точками): public layout типа Layout и instance типа AbstractClass (это абстракция, поэтому курсив).Последний позднее будет содержать экземпляр конкретного ClassA или ClassB.

Будет ли дизайн в порядке, зависит.В принципе, в этом нет ничего плохого.

...