Требует ли шаблон фабрики C # апскейтинга?
Я хочу, чтобы Бог в библиотеке классов G создал Адама в библиотеке классов A, не делая G зависимым от A. Бог создает Адама для потребления Евой в библиотеке классовE, и это хорошо для Евы, чтобы знать и зависеть от Адама.(изменить - этот пример становится все лучше и лучше:)
Решение, о котором я мог подумать, - это иметь AdamFactory в A. Таким образом, AdamFactory знает Адама и может легко его создать (возможно, просто вызвав конструктор Адама).Бог получает AdamFactory и может заказать его для CreateAdam.
Теперь, поскольку Бог не имеет права знать Адама, CreateAdam AdamFacotry должен вернуть объект, и для этого требуется, чтобы Ева выполнила приведение объекта, возвращенного AdamFactory, кАдам.
Это будет работать, я думаю.Тем не менее, я чувствую себя неловко из-за повышения, поскольку это нет-нет.Это действительно необходимо?
PS - Богохульство не предполагается, и я прошу прощения, если чьи-то чувства обидели.Казалось, лучше использовать Бога и Адама вместо Создателя и Создателя, потому что два последних слова слишком похожи друг на друга.
Редактировать: Re интерфейс подсказки.Давайте предположим, что у Адама есть два метода: ProvideLove, ProvideFood и ProvideProtection (мы держим этот пример в безопасности).Ева использует Адама для этих двух целей, но, конечно, Бог этого не делает.Так зачем сообщать Богу, что AdamFactor возвращает что-то, что реализует IAdam, а не просто объект?Я не понимаю!
Редактировать: Рабочий код (со всеми в одной библиотеке, целью которого является разделение на разные библиотеки) выглядит примерно так:
Adam God.LoadAdam(AdamID theAdamID)
var adam = new Adam(theAdamId, this)
Adam.Adam(AdamID theAdamID, God theGod)
_god = theGod
_mind = theGod.LoadMind(theAdamId, this)
Mind God.LoadMind (AdamID theAdamID, Adam theAdam)
var mind = new Mind (theAdam)
var mindId = new minId(theAdamId)
mind.DeserializeFromFile(minId)
Mind.Mind (Adam theAdam)
_adam = theAdam