Принципы проектирования SOLID, графический интерфейс и абстракция модели

У меня есть такая структура данных

Лига --‹ Раунды ---‹ Игры --- 2 игрока

Однако при создании раунда ему необходимо знать, какой метод сопряжения выбран в графическом интерфейсе, до создания, чтобы он знал, как объединять команды.

Может ли кто-нибудь посоветовать, как это реализовать? Я хочу, чтобы модель была отделена от графического интерфейса, но я не могу создать круглый объект, не зная выбранного метода сопряжения. И я не уверен, как лучше всего реализовать пары.

Я подумал что-то вроде

interface IPairingMethod{}
public class RoundRobin:IPairingMethod{}

И используйте DI в конструкторе Round, но это не кажется чистым. Поможет ли заводская выкройка?


person Jcsharpper    schedule 02.02.2017    source источник
comment
Добро пожаловать в Stack Overflow! Мы сайт вопросов и ответов, а не служба кодеров по найму. Пожалуйста, объясните, что вы пробовали до сих пор и почему это не сработало. См.: Почему кто-нибудь может мне помочь? не актуальный вопрос?   -  person Joe C    schedule 03.02.2017


Ответы (1)


С моей точки зрения, фабричный метод или даже абстрактная фабрика звучат как решение вашей проблемы. Если вы не хотите динамически изменять метод сопряжения во время выполнения, вы также можете подумать об использовании контейнера IoC.

person Jan Linxweiler    schedule 03.02.2017