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);
	}
}
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值