nbsp; m_Manager. 扣薪水(this);
}
}
}
这种方法所带来的
问题: 员工类和主管类的耦合性太高
1、 在客户
程序里必须先创建了主管类之后才能生成员工类,如果在不需要主管类对象而只需员工类对象的地方,为了创建所需的员工类对象实例,你也不得不去先创建一个主管类的对象实例;
2、 如果场景剧本(即客户
程序需求)发生了变化
(1)、现在要让一个新的角色(一个新的类),如保安,来代替主管,负责在员工玩游戏时扣员工薪水,那么我们不得不去修改员工类,或许还需要修改主管类;
(2)、如果场景剧本增加新的需求,要求员工在玩游戏后,不但要扣薪水,还要在绩效上扣分,那么我们也不得不修改员工类。
(二)、利用委托的实现:
下面有个例子:在C# 控制台应用
程序编辑运行成功:
using System;
namespace CSharpConsole
{
// 定义委托
public delegate void PlayGameHandler(object sender,System.EventArgs e);
// 负责扣钱的人----主管
public class 主管
{
public 主管()
{
Console.WriteLine("生成主管");
}
public void 扣薪水(object sender,EventArgs e)