image

//公司
    public class Company
    {
        //公司名称
        public string CompanyName { get; set; }
        .
        .
        .
    }
//部门
    public class Department 
    {
        //部门id
        public int DepartmentId { get; set; }

        //部门名称
        public string DepartmentName { get; set; }
        .
        .
        .
    }
     //员工
    public class Employee 
    {
        //员工id
        public int EmployeeId { get; set; }

        //员工名称
        public string EmployeeName { get; set; }
        .
        .
        .
    }

image

//部门
    public class Department 
    {
        //部门id
        public int DepartmentId { get; set; }

        //部门名称
        public string DepartmentName { get; set; }
    }

    //财务部门,这里直接拼音干
    public class CaiWuDepartment : Department
    {
       public void AddNewEmployee(Employee e)
        {
            ....
        }
    }

image

 //员工
    public class Employee 
    {
        //员工id
        public int EmployeeId { get; set; }

        //员工名称
        public string EmployeeName { get; set; }
    }
    //员工为经理
    public class JIngLiEmployee : DataNode
    {
        //也许经理就有提前下班的行为
        public void TiqianXiaBan()
        {

        }
    }

image

 //抽象的数据节点
   public abstract class DataNode
    {
        //获取员工的数量
        public abstract int GetEmployeeNumber();
    }

    //公司
    public class Company: DataNode
    {
        //公司名称
        public string CompanyName { get; set; }
    }

 

    //部门
    public class Department : DataNode
    {
        //部门id
        public int DepartmentId { get; set; }

        //部门名称
        public string DepartmentName { get; set; }
    }

    //财务部门,这里直接拼音干
    public class CaiWuDepartment : Department
    {
       public void AddNewEmployee(Employee e)
        {
           // ....
        }
    }

    //员工
    public class Employee : DataNode
    {
        //员工id
        public int EmployeeId { get; set; }

        //员工名称
        public string EmployeeName { get; set; }
    }
    //员工为经理
    public class JIngLiEmployee : DataNode
    {
        //也许经理就有提前下班的行为
        public void TiqianXiaBan()
        {

        }
    }

以上只是用类作为抽象的演示而已,真正的行为抽象还是用接口来抽象比较合适,这只是菜菜根据经验来总结的一点经验,如果错误,请留言指正

更多精彩文章

image


菜菜
76 声望13 粉丝