欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

工厂模式的一个简单实现

程序员文章站 2024-01-20 10:16:10
1 工厂类 2 获取bean类 根据 上下文得到某个接口的实现类。 3 需要获取实例的接口类 4 的一个实现类 ......

1 工厂类

public class testfactory {

    /**
     *
     */
    private static map<string, testinterface> beanmap = contextutil.getcontext().getbeansoftype(testinterface.class, false, false);

    public static testinterface getinstance(string inftype) {
        testinterface curinstance = null;
        for (string beanname : beanmap.keyset()) {
            testinterface instance = beanmap.get(beanname);
            if (instance.gettype() == null)
                throw new runtimeexception("接口实现类类型不可以为空");
            else {
                if (inftype.equals(instance.gettype())) {
                    curinstance = instance;
                    break;
                }
            }
        }
        return curinstance;
    }
}

2 获取bean类

根据spring上下文得到某个接口的实现类。

public class contextutil implements applicationcontextaware {

    private static applicationcontext context;

    @override
    public void setapplicationcontext(applicationcontext applicationcontext) throws beansexception {
        contextutil.context = applicationcontext;
    }

    public static applicationcontext getcontext() {
        return context;
    }
}

3 需要获取实例的接口类

public interface testinterface<t> {

    string gettype();

    void testfunc(t t);
}

4 testinterface的一个实现类

public class testinterfaceimpl implements testinterface<string> {
    @override
    public string gettype() {
        return "1";
    }

    @override
    public void testfunc(string s) {
        system.out.println("testinterfaceimpl -- 01");
    }
}