public static void Main(string[] args) { //The Facade pattern provides a unified interface to interact with a complex subsystem //It is commonly used to hide the complexities of a system from the client //In this example, the mortgage facade is hiding the complexities of all of the checks needed to apply for a loan //The Mortgage facade class does all the heavy lifting and provides a simple method for a client to use // Facade var mortgage = new MortgageFacade(); var customer = new Customer(100, "Mark Zuckerberg"); var customer2 = new Customer(105, "Cookie Monster"); // Evaluate mortgage eligibility for customer var eligible = mortgage.IsEligible(customer, 125000); Console.WriteLine("\n" + customer.Name + " has been " + (eligible ? "Approved" : "Rejected")); Console.WriteLine("\n===================================\n"); eligible = mortgage.IsEligible(customer2, 201000); Console.WriteLine("\n" + customer2.Name + " has been " + (eligible ? "Approved" : "Rejected")); Console.ReadLine(); }
public static void Main(string[] args) { // Facade MortgageFacade mortgage = new MortgageFacade(); // Evaluate mortgage eligibility for customer Customer customer = new Customer("Ann McKinsey"); bool eligible = mortgage.IsEligible(customer, 125000); Console.WriteLine("\n" + customer.Name + " has been " + (eligible ? "Approved" : "Rejected")); // Wait for user Console.ReadKey(); }