Does a facade hide things?
transcript
A teammate says a facade should hide the subsystem, so nobody can bypass it. Is that right? No. And the book says so, in plain words.
Clients use the desk for the common case. Place order. But the back office restocks straight on the inventory. Allowed. A facade doesn't prevent applications from using the subsystem classes. Migrations and tests need that door too.
The book says you choose between ease of use and generality. The facade is the easy road. The subsystem is the general road. Both stay open for traffic.
Languages can go further. Python can export only the facade. Java can make the subsystem package private. C plus plus can hide it behind a pointer to implementation. That's stronger than the pattern asks. Do it on purpose, not by habit.
A facade simplifies the way in. It doesn't close the other doors. Not for the back office, not for tests.
Full breakdown in the lecture.