C#学习笔记 factory模式

嵌套类型的一个应用——factory模式(工厂模式)。所谓factory模式,是指一个能产生某种“产品”的“工厂”,其中产生产品只能由工厂产生。例如一个银行账号(Account)只能有银行(Bank)来产生。在C#中,账号可以由Bank的内部类(Account)来实现,在这里内部类是private的,不能由外部进行访问,只能通过一个接口(ICount)来访问。
NestedBankAccount.cs通过嵌套类来实现Factory模式的银行账号:

using System;
using System.Collections;

public interface IAccount   // 定义接口
{
    
    
	long Number {
    
     get; }
	decimal Balance {
    
     get; }
	void Deposit(decimal amount);
	void Withdraw(decimal amount);
}

public class Bank
{
    
    
	public IAccount OpenAccount() {
    
    
		IAccount acc = new Account();
		accounts[acc.Number] = acc;
		return acc;
	}

	private readonly Hashtable accounts = new Hashtable();

	private sealed class Account : IAccount
	{
    
    
		public long Number => number;
		public decimal Balance => balance;
		public void Deposit(decimal amount) {
    
    
			balance += amount;
		}
		public void Withdraw(decimal amount) {
    
    
			balance -= amount;
		}

		private decimal balance = 0;    // decimal 是高精度浮点类型
		private static long nextNumber = 123;
		private readonly long number = nextNumber++;
	}
}

class Test
{
    
    
	static void Main() {
    
    
		Bank bank = new Bank();
		IAccount account = bank.OpenAccount();

		account.Deposit(100.00M);
		account.Withdraw(40.00M);
		Console.WriteLine("Account{0}has ${1}", account.Number, account.Balance);
	}
}

猜你喜欢

转载自blog.csdn.net/qq_45349225/article/details/114152867