我是靠谱客的博主 含蓄奇异果,最近开发中收集的这篇文章主要介绍设计模式-静态工厂之服务提供者框架,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述


一、服务提供者框架组件

服务提供者有以下几个组件:

1、服务接口,这是提供者实现的;

2、提供者注册API,这是系统用来注册实现,让客户端访问;

3、服务访问API,这是客户端用来获取服务的实例;

4、服务提供者接口,这是提供者负责创建其服务实现的实例;

二、服务提供者框架简单实现


//服务接口
public Interface Service {
   public abstract serve();
}

//服务提供者接口
public Interface Provider {
	Service newService();
}


//Noninstantiable class for service registration and access
public class Services {
	private Services() {};
	//Maps service name to services
	private static final Map<String,Provider> providers = new ConcurrentHashMap<String,Provider>();
	public static final String DEFAULT_PROVIDER_NAME = "<def>";
	
	//Provider registration API
	public static void registerDefaultProvider(Provider p) {
		registerProvider(DEFAULT_PROVIDER_NAME,p);
	}
	public static void registerProvider(String name, Provider p) {
		providers.put(name,p);
	}
	
	//Service access API
	public static Service newInstance() {
		return newInstance(DEFAULT_PROVIDER_NAME);
	}
	public static Service newInstance(String name) {
		Provider p = providers.get(name);
		if(p == null) {
			throw new IllegalArgumentException("No provider registered with name: " + name);
		}
		return p.newService();
	}
	
	
}

//服务提供者接口
public class EntityProvider implements Provider {

    static{ 
        ServiceManager.registerService("EntityService", new EntityProvider()); 
    }
    
    @override
    protect void newService() {
        return new ServiceImpl();
    }
    
    class ServiceImpl implements Service {
    
        @override
        protected void serve() {
            System.out.println("service that entity provided serve");
        }
        
    }

    
}

//测试
public class Test { 
  
    public static void main(String[] args) { 
         
		Service s = Services.newInstance("EntityService"); 
		s.serve(); 
        
    } 
	
} 





最后

以上就是含蓄奇异果为你收集整理的设计模式-静态工厂之服务提供者框架的全部内容,希望文章能够帮你解决设计模式-静态工厂之服务提供者框架所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部