class1.cs

来自「《深入浅出设计模式》的完整源代码」· CS 代码 · 共 87 行

CS
87
字号
namespace Mortgage
{
	using System;
	//子系统 类A
	class Bank
	{
		public bool SufficientSavings( Customer c )
		{
			Console.WriteLine("Check bank for {0}", c.Name );
			return true;
		}
	}
	//子系统 类B
	class Credit
	{
		public bool GoodCredit( int amount, Customer c )
		{
			Console.WriteLine( "Check credit for {0}", c.Name );
			return true;
		}
	}
	//子系统 类C
	class Loan
	{
		public bool GoodLoan( Customer c )
		{
			Console.WriteLine( "Check loan for {0}", c.Name );
			return true;
		}
	}
	//申请抵押的顾客
	class Customer
	{
		private string name;
		//Constructors构造函数
		public Customer( string name )
		{
			this.name = name;
		}
		// Properties属性
		public string Name
		{
			get{ return name; }
		}
	}
	// "Facade" 
	class MortgageApplication
	{
		int amount;
		private Bank bank = new Bank();
		private Loan loan = new Loan();
		private Credit credit = new Credit();
		// Constructors
		public MortgageApplication( int amount )
		{
			this.amount = amount;
		}
		public bool IsEligible( Customer c )
		{
			//检查信用是否值得
			if( !bank.SufficientSavings( c ) )  
				return false;
			if( !loan.GoodLoan( c ) )  
				return false;
			if( !credit.GoodCredit( amount, c ))  
				return false;

			return true;
		}
	}
	/// <summary>
	/// Facade 客户测试程序
	/// </summary>
	public class FacadeApp
	{
		public static void Main(string[] args)
		{
			// 创建Facade
			MortgageApplication mortgage =new MortgageApplication( 125000 );
			//通过Facade调用子系统
			mortgage.IsEligible(new Customer( "Gabrielle McKinsey" ) );
			Console.Read();
		}
	}  

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?