解决方案 »

  1.   

    个人理解,和大家分享下
    1.应用面向对象的思想
    场景描述中的对象包括:员工、工作日历
    思想:员工和工作日历的关系,原文描述“每个员工有一个自己的工作日历”,组合关系 has-a
    动作:“设置节假日”和“工作时间的有效性的校验过程”
    动作归属:设置节假日--设置工作日历的节假日;工作时间的有效性的校验过程--工作日历校验员工的输入;最终动作都属于 工作日历
    2.提供一个简单的参考:
    interface WorkSheet
    {
    //设置节假日
    void setHoliday(Date[] date);

    //设置工作时间
    boolean setWorkTime(Date date,double time);
    }public class Employee
    {

    private WorkSheet workSheet = new WorkSheet()
    {
    @Override
    public void setHoliday(Date[] date) {

    }

    @Override
    public boolean setWorkTime(Date date,double time) {

    1.进行 date 和 time输入有效性验证

    2.填报工作时间有效性验证
    if date不是节假日 then
    {
    if time 大于最小工作时间 && time 小于最大工作时间 then
    {
    成功写入工作时间信息
    return true;
    }
    else
    {
    给出提示:填报的工作时间有最大限制和最小限制
    return false;
    }
    }
    else
    {
    给出提示信息:节假日不可以设置工作时间
    return false;
    }

    }

    }

    public WorkSheet getPersonalWorkSheet()
    {
    return workSheet;
    }
    }
    测试类
    public class TestClass { public static void main(String[] args) {
    Employee zhangSan = new Employee();

    WorkSheet ws = zhangSan.getPersonalWorkSheet();

    //初始化节假日
    Date[] holiday = new Date[]{};

    ws.setHoliday(holiday);

    //每天填写工作时间调用一些这个方法
    ws.setWorkTime(date, time);
    }}