util.God -2

来源:互联网 发布:弱电网络模块 编辑:程序博客网 时间:2024/06/05 19:02

util.God的局限性:1)仅能够按照默认构造器创建对象;2)仅支持属性配置文件,3)不支持标注。


有同学问,yqj2065.util.God是Martin Fowler文章中的Service Locator吗?

总体而言,yqj2065比较烦引入太多概念。

【Service Locator模式背后的基本思想是:有一个对象(即服务定位器)知道如何获得一个应用程序所需的所有服务。】

既然如此,util.God是Service Locator。

这个概念比较直观,但是”把ServiceLocator类实现为一个Singleton的注册表“等,我懒得看了,服务定位器的实现,简单地想,就有

  • 工厂
  • God
  • ...
  • JNDI(Java Naming and Directory Interface)

有同学问,我不想用配置文件,在项目和文件系统之间跑来跑去,好累啊。其实,Netbeans中在项目和文件系统之间跑来跑去,你操作很方便。
ok,不想用配置文件,你把键值对用Map保存就可以了。
package yqj2065.util;import java.util.HashMap;import java.util.Map;/** * * @author yqj2065 */public class MapLocator  implements Locator{    Map<String,String> map = new HashMap<>();    {        map.put("IServer", "init.Server");    }    @Override    public String getValue(String path, String key) {        return map.get(key);    }}
你的God要变一下:用策略。注意:
public class God {    private static final Locator locator = new MapLocator();       public static String getValue(String path, String key) {        return locator.getValue(path, key);    }
...


原创粉丝点击