一点心得
2014-06-15 14:10
225 查看
项目中会遇到这样的逻辑处理:根据不同类型调用不同的方法,通常会用到if else等语句,感觉不太好;1,应该面向接口编程2,尽量避免使用if语句实例:原来代码,接口Iservice的实现类有 ServiceA ,ServiceB,ServiceC
public static void main(String[] args) { String type = "C"; Iservice service = null; if (type.equals("A")) { service = new ServiceA(); } if (type.equals("B")) { service = new ServiceA(); } if (type.equals("C")) { service = new ServiceA(); } service.printMsg(); }上述代码,if语句会随着type取值的增加而增加,需要改动主业务代码
整改
import java.util.HashMap; import java.util.Map; public class Test { private static Map<String, Iservice> m = new HashMap<String, Iservice>(); /** * @param args */ public static void main(String[] args) { cache(); String type = "B"; Iservice service = m.get(type); service.printMsg(); } private static void cache() { // 緩存 if (m.isEmpty()) { m.put("A", new ServiceA()); m.put("B", new ServiceB()); m.put("B", new ServiceB()); } } }如上面代码:以后type类型有新增,只需修改 cache() 方法,增加对应实现即可,不用修改主业务代码
相关文章推荐
- GC_CLK和CC_CLK专用时钟管脚的一点应用心得和时钟延迟调试
- 工作中的一点心得
- 关于POI和JXL处理Excel的一点使用心得
- 学习开源网络库muduo的一点心得
- (同事的原创)关于效率优化的一点工作心得
- native2ascii命令一点心得
- WinDBG加载符号表的一点心得体会
- 打算开始写写自己的一点技术心得和创业心得
- c++ new字符串的一点心得
- 近期开发工作的一点心得体会
- 学习matlab的一点心得体会
- 初学xsl应用的一点心得
- 我的一点自学心得[摘]
- #bzoj3375#膈膜(水题来着,但小问题频发,一点感受心得)
- 面试,一点小心得
- C# 中 Socket 进行数据接收的一点心得
- 汉化.NET软件的一点心得
- 关于sql server中的动态sql语句的一点心得
- 关于内存泄露的一点心得
- 《做安全的一点心得》摘录