工厂模式可以屏蔽接口的具体实现,调用的时候只关注接口的具体名称而无需关注实现。这是他的优点。如果增加其他的功能,只需要实现接口即可。同样的,当需要大量的额功能是,这时候就需要创建多个类,增加了类的数目,也为系统带来了复杂性。下面的代码是演示工厂设计模式。
场景:当我们调用接口的时候我们根据传递进来的进口通信代码来判断是要调用RPC接口还是REST接口。
public interface CommunicaeProtoco {
/**
*
* @param protocoCode 通信协议代码
* @return
*/
Object selectProtoco(String protocoCode);
}
下面的是实现:
public class RestProtoco implements CommunicaeProtoco {
@Override
public Object selectProtoco(String protocoCode) {
return "restful---->";
}
}
public class RPCProtoco implements CommunicaeProtoco{
@Override
public Object selectProtoco(String protocoCode) {
return "RPC---->";
}
}
工厂类:
public class CommunicaeProtocoFactory {
public CommunicaeProtoco getProtoco(String protocoCode){
if(protocoCode!=null){
if("rpc".equals(protocoCode)){
return new RPCProtoco();
}else if("rest".equals(protocoCode)){
return new RestProtoco();
}
}
return null;
}
}