简单工厂模式是23种设计模式的一种,给人最直观的感受就是我可以根据我输入的数据创建不同的对象,但是这个对象必须实现相同的方法。那我们可不可以理解成就是一个对象里面我重写了若干个方法,这个方法除了方法体不一样其他都一样,貌似这样理解也没错,只是简单工厂模式将其具体化了。
public interface Operation {
int show(int a,int b);
}
public class add implements Operation {
@Override
public int show(int a, int b) {
return a+b;
}
}
public class div implements Operation {
@Override
public int show(int a, int b) {
if(b==0){
return 0;
}
return a/b;
}
}
public class mul implements Operation {
@Override
public int show(int a, int b) {
return a*b;
}
}
public class sub implements Operation {
@Override
public int show(int a, int b) {
return a-b;
}
}
public class ClientImpl{
private static final Logger log = LoggerFactory.getLogger(ClientImpl.class);
public static Operation CreateFactory(String str) {
Operation factory = null;
switch(str){
case "+" :
log.info("add is running");
factory = new add();
break;
case "-" :
log.info("sub is running");
factory = new sub();
break;
case "*" :
log.info("mul is running");
factory = new mul();
break;
case "/" :
log.info("div is running");
factory = new div();
break;
default:
log.info("no Factory is running");
break;
}
return factory;
}
}
@Test
public void Test2(){
Operation add = ClientImpl.CreateFactory("+");
System.out.println(add.show(1,2));
}
这个简单工厂最简单的例子就是加减乘除,我找了一些别的博客上的说法简单工厂的好处,我个人觉得还是说将创建对象和调用对象的方法分离开实现解耦。不用关注我,致力于一个人写点博客缓解压力的人,写博客对文笔不好的人真的是天大的lower