Facade is a structural design pattern that provides a simplified (but limited) interface to a complex system of classes, library or framework.
While Facade decreases the overall complexity of the application, it also helps to move unwanted dependencies to one place.
pub struct WalletFacade hides a complex logic behind its API. A single method
add_money_to_wallet interacts with the account, code, wallet, notification and ledger behind the scenes.