예제 #1
0
        static void Main(string[] args)
        {
            EmployeeList list = new EmployeeList();
            Employee     fte1, fte2, fte3, pte1, pte2;

            fte1 = new FulltimeEmployee("张无忌", 3200.00, 45);
            fte2 = new FulltimeEmployee("杨过", 2000.00, 40);
            fte3 = new FulltimeEmployee("段誉", 2400.00, 38);
            pte1 = new ParttimeEmployee("洪七公", 80.00, 20);
            pte2 = new ParttimeEmployee("郭靖", 60.00, 18);

            list.AddEmployee(fte1);
            list.AddEmployee(fte2);
            list.AddEmployee(fte3);
            list.AddEmployee(pte1);
            list.AddEmployee(pte2);

            Department dep;
            //读取配置文件
            string visitorStr = ConfigurationManager.AppSettings["visitor"];

            //反射生成对象
            dep = (Department)Assembly.Load("VisitorSample").CreateInstance(visitorStr);
            list.Accept(dep);

            Console.Read();
        }
예제 #2
0
        //实现人力资源部对全职员工的访问
        public override void Visit(FulltimeEmployee employee)
        {
            int workTime = employee.WorkTime;

            Console.WriteLine("正式员工{0}实际工作时间为:{1}小时。", employee.Name, workTime);
            if (workTime > 40)
            {
                Console.WriteLine("正式员工{0}加班时间为:{1}小时。", employee.Name, workTime - 40);
            }
            else if (workTime < 40)
            {
                Console.WriteLine("正式员工{0}请假时间为:{1}小时。", employee.Name, 40 - workTime);
            }
        }
예제 #3
0
        //实现财务部对全职员工的访问
        public override void Visit(FulltimeEmployee employee)
        {
            int    workTime = employee.WorkTime;
            double weekWage = employee.WeeklyWage;

            if (workTime > 40)
            {
                weekWage = weekWage + (workTime - 40) * 100;
            }
            else if (workTime < 40)
            {
                weekWage = weekWage - (40 - workTime) * 80;
                if (weekWage < 0)
                {
                    weekWage = 0;
                }
            }
            Console.WriteLine("正式员工{0}实际工资为:{1}元。", employee.Name, weekWage);
        }