Внутри упаковки я должен использовать Facade Pattern (или что-то подобное)? - PullRequest
1 голос
/ 27 мая 2011

Я использую Facade для доступа к методам и классам внутри пакета, но и внутри пакета?Я должен получить доступ к методам другого класса напрямую или через фасад или что-то подобное?

Пример: Package 1(Class Foo, Class Bar, Facade FooBar)

Outside Class -> FooBar --> Foo method

но внутри:

Foo --> Bar или Foo --> FooBar --> BarFacade

1 Ответ

2 голосов
/ 27 мая 2011

Фасад - это единый интерфейс, который обеспечивает легкий доступ ко всем функциям, происходящим за кулисами. Это не то же самое, что требование передавать внутреннюю функциональность между компонентами обратно из системы (и обратно через интерфейс).

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

Outside -> Facade -> Inside.

не

Outside -> Facade -> Inside -> Facade -> Inside.

или в вашем случае

OutSide -> FooBar -> Foo -> Bar

было бы просто отлично.

...