Домен, безусловно, не то, что вы ищете, по моему мнению, и не ваш уровень доступа к данным.
По моему скромному мнению, то, что должно быть открыто, еще не существует, то естьэто, скажем, статический класс, если мы рассмотрим шаблон проектирования Façade, который раскрывает возможности и функциональности вашей подсистемы библиотеки.
Шаблон проектирования Façade объяснил:
- Шаблон фасада - (Банда четырех) ;
- Шаблон фасада (Википедия) .
Итак, в конце концов, что должен делать ваш код?Просто представьте, что необходимо, что вам следует знать, поскольку вы единственный, кто знает о системе, которую вы разрабатываете.
Короче говоря, я часто использую шаблон Фасада, чтобы изолировать своиклассы, реализации и несколько связанных подсистем под капотом фасада.Давайте рассмотрим, мы являемся совершенно новым дилером автомобилей.Этот фасад будет отличными окнами, которые позволят вам увидеть машины, выставленные в выставочном зале.Вы должны думать о том, что выставляет этот фасад.Это выставляет только автомобили?
На мой взгляд, этот фасад выставляет автомобили, которые вы сможете купить, одолжить, купить, отремонтировать автомобиль, купить другие сопутствующие аксессуары и т. Д. Аксессуарызатем должны быть разоблачены, но только то, что нужно.То же самое с другими предметами, такими как автомобиль.То есть вы можете захотеть предоставить только интерфейс и сохранить реализацию для себя, чтобы через ваш фасад, когда вам нужно было вернуть ICar
или IAccessory
, вам нужно было создать их экземпляр с помощью класса объекта реализации, затем верните экземпляр интерфейса через ваш фасад.Тем не менее, пользователю не нужно знать, что происходит под капотом, но только то, что если он хочет автомобиль, он должен заказать его через ваш фасад.Точно так же, как вы не пойдете покупать Mazda 3 на Mercedes Benz.Вы будете работать с правильным фасадом.С другой стороны, разные автодилеры могут быть только подсистемами, а значит, это своего рода фабрики.Затем вы спрашиваете у фасада автомобиль с этой и той же спецификацией, и фасад должен знать, какой экземпляр ICar
нужно вернуть, чтобы обменять на то, что вы просите его предоставить.
Надеюсь, это поможет в любом случае!=)