有帮助的话去支持支持Micro极微完美女装品牌店淘宝店
工厂就是自动为你创建你想要的类,前面的简单工厂模式我们是针对类创建工厂,因此我们需要一个运算类的工厂,根据需求让运算工厂帮我们创建各种运算类。方法工厂则是根据运算类里面的方法建立工厂,也就是要建立+-*/四个工厂。这样我们要让客户端知道更多东西,简单工厂模式里面客户端需要减法操作,只需要传入一个-就行。但是在方法工厂不行,客户端必须告诉后台你需要那个方法的工厂这样我们才能给你创建。然后通过方法工厂再进一步到你的实体去执行操作。下面是一个UML图
结合图我们实现一个简单的方法工厂:
//运算类
public abstract class Operation {
public abstract Integer opr(int i,int j);
}
//加
public class Jia extends Operation {
@Override
public Integer opr(int i,int j) {
return i+j;
}
}
//减
public class Jian extends Operation {
@Override
public Integer opr(int i, int j) {
return i-j;
}
}
//运算类工厂
public abstract class OperactionFaction {
public abstract Operation COperation();
}
//加法工厂
public class JiaFunction extends OperactionFaction {
@Override
public Operation COperation(){
return new Jia();
}
}
//减法工厂
public class JianFaction extends OperactionFaction{
@Override
public Operation COperation() {
return new Jian();
}
}
//测试
public class test {
public static void main(String[] args) {
//我们创建加法和减法工厂
OperactionFaction ofj = new JiaFunction();
OperactionFaction ofja = new JianFaction();
//通过工厂的COperation方法获取到具有某种方法的运算类
Operation o = ofj.COperation();
//通过获取的运算类进行特定的方法运算
System.out.println(o.opr(3,1));
}
}