zoukankan      html  css  js  c++  java
  • ServiceLoad 应用(链式编程:统一执行某一类功能、、分支语句优化)

    周计划安排;“工作日(周一到周五):去工作;周六:锻炼身体;周日:休息;”

    若用代码完成上述内容该怎么做?

    这样吗?很显然是可以实现。

    但是这样不是个好的实现方式。。。。。。(没有什么扩展性,如果需求调整就得修改调用方法)

    接下来介绍另外一种实现方式:


    /**
    * 周计划 接口
    */
    public interface WeeksPlan {
    /**
    * 获取哪一天
    *
    * @return
    */
    Day getDay();

    void doTing();

    public enum Day {
    WORK,//工作日
    STA,//周六
    SUN//周日
    }
    }
    /**
    * 工作日.
    */
    public class WorkingDays implements WeeksPlan {
    @Override
    public Day getDay() {
    //工作日
    return Day.WORK;
    }

    @Override
    public void doTing() {
    System.out.println("上班 ing。。。。");
    }
    }

    /**
    * 周六 健身
    */
    public class Saturday implements WeeksPlan {

    @Override
    public Day getDay() {
    //周六
    return Day.STA;
    }

    @Override
    public void doTing() {
    System.out.println("健身 。。。");
    }
    }
    /**
    * 周日休息
    */
    public class Sunday implements WeeksPlan {

    @Override
    public Day getDay() {
    //周日
    return Day.SUN;
    }

    @Override
    public void doTing() {
    System.out.println("休息 。。。");
    }
    }

    增加配置文件:

    客户端调用:

    import java.util.ServiceLoader;

    /**
    * 执行计划
    */
    public class ExecutePlan {

    public static void main(String[] args) {
    exe();
    }

    private static void exe() {
    //周计划
    ServiceLoader<WeeksPlan> weeksPlans = ServiceLoader.load(WeeksPlan.class);
    for (WeeksPlan plan : weeksPlans) {
    System.out.print(plan.getDay() + ":");
    plan.doTing();
    }
    }
    }
    结果:


    总结:
    1,计划功能类结构清晰;如果需要细化到每一天的计划,只需要增加几个类即可;
    2,易于调整;若计划改变,周日"休息"调整为“聚餐” 仅仅需要调整对应的功能实现类即可,不用修改调用方;
    
    
  • 相关阅读:
    20100720 14:14 转:BW十日谈之标准数据源
    BW会计年度期间转换出错
    SQL Server 2005 Logon Triggers 详细介绍
    作业输出文档维护
    windows 系统监视器 以及建议阀值
    linkedserver 的使用
    DAC 连接数据库需要做些什么
    SQL Server 2008新特性 Merge 详细见联机手册
    【20110406】提高数据库可用性需要注意的问题
    索引迁移
  • 原文地址:https://www.cnblogs.com/fish-in-sky/p/6389496.html
Copyright © 2011-2022 走看看