Мне нужна схема:Интерфейс, который содержит способ создания экземпляра
Я использую C#.
Скажите, что есть три актера; Джим, Пэт и Салли. Работа Пэт заключается в создании интерфейса в качестве контракта между Джимом и Салли. Задача Салли - создать класс, который реализует интерфейс, а работа Джима - написать класс, который потребляет объект Салли.
Джим не должен знать о конкретном объекте Салли, только он реализует общий интерфейс.
Пат должен включить в контракт способ Джима создать экземпляр конкретного объекта Салли, но называться интерфейсом.
Там нет никакого способа, чтобы включить статическое определение метода в любом интерфейсе или абстрактного класса, так что вы не можете сделать что-то вроде:
public interface IFoo
{
public static IFoo CreateIFoo();
}
Как Пэт может написать контракт, чтобы гарантировать, что Салли будет создавать метод для Джима создать свой конкретный объект, на который ссылается интерфейс?
Заводской шаблон, вероятно, поможет здесь. Либо это, либо вам придется переместить статический метод в статический вспомогательный класс вместо этого, но это никоим образом не будет «принудительно» по контракту. –
Спасибо «Поверь мне», Вы указываете мою дилемму, нет способа принудительного использования фабрики как статического метода в классе-помощнике. – dtaylor