⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 class1.cs

📁 《深入浅出设计模式》的完整源代码
💻 CS
字号:
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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -