1、公司要建立人事管理模型,员工包括有正式员工和试用员工两种,正式员工中又有经理级别的员工
员工拥有名字、工号、薪水
所有的员工都要有工作的方法,所有的员工都能够被晋升,作为试用期员工,他的晋升是提升自己为正式员工(返回一个正式员工对象),薪水增加30%;正式员工和经理仅增加薪水20%;经理有管理的方法
针对以上对象设计类
2、小张有一个闹钟,闹钟响起时会报出当天日期时间,如果是周六、周日,小张会继续睡觉,否则就起床去上班
小张的父亲也在关注这个闹钟,如果是周日、周一,则睡觉,否则就去上班
利用事件模拟以上流程
员工拥有名字、工号、薪水
所有的员工都要有工作的方法,所有的员工都能够被晋升,作为试用期员工,他的晋升是提升自己为正式员工(返回一个正式员工对象),薪水增加30%;正式员工和经理仅增加薪水20%;经理有管理的方法
针对以上对象设计类
2、小张有一个闹钟,闹钟响起时会报出当天日期时间,如果是周六、周日,小张会继续睡觉,否则就起床去上班
小张的父亲也在关注这个闹钟,如果是周日、周一,则睡觉,否则就去上班
利用事件模拟以上流程
1.提供一个员工接口Iemp,
public interface Iemp{string EmpName{get;set;}string EmpNo{get;set;}int Salary{get;set;}}
三个类Manager,TrialEmp,OfficialEmp 分别继承Iemppublic class Manager
{
private string empName;private string empNo;private int salary;
public string EmpName{get{return empName;} set{empName=value;}}
public string EmpNo{get{return empNo;}set{empNo=value;}}
public int Salary{get{return salary;} set{salary=value;}}
}public class TrialEmp
{
private string empName;private string empNo;private int salary;
public string EmpName{get{return empName;} set{empName=value;}}
public string EmpNo{get{return empNo;}set{empNo=value;}}
public int Salary{get{return salary;} set{salary=value;}} public void ToOfficialEmp ()
{
this.Salary=this.Salary*1.3;
//如果用数据库
delete ...
insert...
//如果用集合,先remove,
IList<TrialEmp>.remove(this);
IList<OfficialEmp>.add(this);
}
}
//另一个正式员工升到经理相似不写了2.public interface Iacitve{void Morning();DateTime Clock{get{};set{};} }
//DateTime为闹钟响的时候的时间,你可以写个闹钟类,有属性获取当前时间,和一个方法实现小张类和小张他爸类的实例化
//public void Linglingling()
//{Far f=new Far();XiaoZhang xz=new XiaoZhang();}
//然后再这两类的构造函数中判断是该睡觉还是去工作,即实现Morning();方法
public class Far{ private DateTime clock ;public DateTime Clock{get{return clock;}set{clock=value;}}
public void Morning()
{
//获取星期几的方式自己弄,我瞎写,
if(this.Clock.Week==7 || this.Clock.week==1)
{
gotosleep();
}
else
{gotowork();}
}
//小张的类相似