简单工厂设计模式
1.工厂模板:以计算器工厂模板为例
package com.design.factory;
public interface IProduction {
public float caculate(float n1, float n2);
}
2.生产的工厂
package com.design.factory;
public class SimpleFactory {
public SimpleFactory() {
}
public IProduction createProduction(String s) {
switch (s) {
case "+":
return (IProduction) new AddCaculator();
case "-":
return (IProduction) new SubCaculator();
case "*":
return (IProduction) new MulCaculator();
case "/":
return (IProduction) new DivCaculator();
default:
break;
}
return null;
}
}
3.工厂中可以生产的内容
(1)加法
package com.design.factory;
public class AddCaculator implements IProduction{
@Override
public float caculate(float n1, float n2) {
return n1+n2;
}
}
(2)减法
package com.design.factory;
public class SubCaculator implements IProduction{
@Override
public float caculate(float n1, float n2) {
return n1-n2;
}
}
(3)乘法
package com.design.factory;
public class MulCaculator implements IProduction{
@Override
public float caculate(float n1, float n2) {
return n1*n2;
}
}
(4)除法
package com.design.factory;
public class DivCaculator implements IProduction{
@Override
public float caculate(float n1, float n2) {
return n1/n2;
}
}
4.测试类
package com.design.factory;
public class TestMain {
public static void main(String[] args) {
IProduction p=new SimpleFactory().createProduction("/");
System.out.println(p.caculate(33f, 2.5f));
}
}
测试结果如下(以除法为例):