日期:2014-05-20 浏览次数:21053 次
namespace 单例模式
{
public partial class frmMdiParent : Form
{
public frmMdiParent()
{
InitializeComponent();
}
private void mnuItemOpenMdiChildren_Click(object sender, EventArgs e)
{
//客户代码,只需要管调用,不需要管实现,符合封闭-开放原则
frmChildren.GetInstance().Show();
}
}
}
namespace 单例模式
{
public partial class frmChildren : Form
{
private frmChildren()
{
InitializeComponent();
}
//声明一个静态的自己类型的变量
private static frmChildren _objFrmChildren = null;
//构造方法改为私有,使外部代码无法通过 new 来实例化
private void frmChildren_Load(object sender, EventArgs e)
{
}
//外部代码通过这个方法来获取 类 的实例 以代替类构造函数功能
public static frmChildren GetInstance()
{
//判断实例是否存在,不存在则调用构造方法
if (_objFrmChildren == null || _objFrmChildren.IsDisposed)
{
_objFrmChildren = new frmChildren();
_objFrmChildren.MdiParent = frmMdiParent.ActiveForm;
}
return _objFrmChildren;
}
}
}
static void Main(string[] args)
{
Employee e = new Employee("周润发");
Employee e1 = new Employee("刘德华");
e.Salary.加上("基本工资", 6000).
加上("出勤奖", 300).
加上("清凉补贴", 200).
参照("基本工资").加上("浮动奖励 10%", x => x * 0.1).
在总数的基础上加上("董事长奖金 15%", x => x * 0.15).
加上("新年/平时补贴", () =>
{
if (DateTime.Now.Month == 1)
return 1000;
else
return 500;
}).
参照("基本工资", "浮动奖励 10%").扣除("押金 (基本工资和浮动奖励的5%)", (x, y) => (x + y) * 0.05).
扣除("水电扣除", 100);
e1.Salary.加上("基本工资", 4000).
加上("出勤奖", 300).
在总数的基础上加上("董事长奖金 25%", x => x * 0.25).
加上("岗位津贴", 2000).
加上("清凉补贴", 200).
扣除("水电扣除", 120);
e.DisplaySalary();
e1.DisplaySalary();
}