package designpattern.factorymethod; import designpattern.staticfactorymethod.calculate; public interface calculatefactory { calculate create(); }
package designpattern.factorymethod; import designpattern.staticfactorymethod.calculate; import designpattern.staticfactorymethod.plus; public class plusfactory implements calculatefactory{ @override public calculate create() { return new plus(); } }
package designpattern.factorymethod; import designpattern.staticfactorymethod.calculate; import designpattern.staticfactorymethod.minus; public class minusfactory implements calculatefactory { @override public calculate create() { return new minus(); } }
package designpattern.factorymethod; import designpattern.staticfactorymethod.calculate; import designpattern.staticfactorymethod.multiply; public class multiplyfactory implements calculatefactory { @override public calculate create() { return new multiply(); } }
package designpattern.factorymethod; import designpattern.staticfactorymethod.calculate; import designpattern.staticfactorymethod.divide; public class dividefactory implements calculatefactory { @override public calculate create() { return new divide(); } }
package designpattern.staticfactorymethod; public abstract class calculate { public double num1; public double num2; calculate() { } calculate(double num1, double num2) { this.num1 = num1; this.num2 = num2; } public abstract double calculate(); }
加:
package designpattern.staticfactorymethod; public class plus extends calculate { public plus() { } plus(double num1, double num2) { super(num1, num2); } @override public double calculate() { return num1 + num2; } }
package designpattern.staticfactorymethod; public class minus extends calculate { public minus() { } minus(double num1, double num2) { super(num1, num2); } @override public double calculate() { return num1 - num2; } }
package designpattern.staticfactorymethod; public class multiply extends calculate { public multiply() { } multiply(double num1, double num2) { super(num1, num2); } @override public double calculate() { return num1 * num2; } }
package designpattern.staticfactorymethod; public class divide extends calculate { public divide() { } divide(double num1, double num2) { super(num1, num2); } @override public double calculate() { return num1 / num2; } }
package designpattern.factorymethod; import java.util.scanner; import designpattern.staticfactorymethod.calculate; public class client { public static void main(string[] args) { scanner scanner = new scanner(system.in); system.out.println("请输入一个数字"); double num1 = scanner.nextdouble(); system.out.println("请输入一个运算符:+、-、*、/"); string operator = scanner.next();// 不能用nextline(),会把上一个回车给吸收 system.out.println("请输入一个数字"); double num2 = scanner.nextdouble(); calculatefactory calculatefactory = null; switch (operator) { case "+": calculatefactory = new plusfactory(); break; case "-": calculatefactory = new minusfactory(); break; case "*": calculatefactory = new multiplyfactory(); break; case "/": calculatefactory = new dividefactory(); break; default: break; } calculate calculate = calculatefactory.create(); calculate.num1 = num1; calculate.num2 = num2; system.out.println(calculate.calculate()); scanner.close(); } }
如对本文有疑问, 点击进行留言回复!!
荐 厉害了!阿里P8架构师用4大技术文档带你深入解读爆火的中台战略
FlowableException: Error initialising dmn data model报错问题
网友评论