真是无语啊,学习三天,休息三个月真是无语。
好了,长话短说,继续设计模式的学习,先回顾下第一个设计模式,而后直接进行第二个设计模式的学习,得抓进度,人生本身时间有限。不抓进度就是不抓效率。
OK,begin!
简单工厂模式,先自己写一个计算的算法:简单工厂模式
四个类:父类,子类,工厂类,调用类。除了细节上一些瑕疵,基本一气呵成,简单工厂模式基本认识差不多。下一步来认识另一种模式。
public abstract class Calculate {
private static Double _countA;
private static Double _countB;
public static void setCountA(Double countA) {
_countA = countA;
}
public static Double getCountA() {
return _countA;
}
public static void setCountB(Double countB) {
_countB = countB;
}
public static Double getCountB() {
return _countB;
}
public Double getResult(){
Double result = 0.0;
return result;
}
}
public class DivCalculate extends Calculate{
public Double getResult() {
Double result = 0.0;
if(getCountB() == 0) {
System.out.println("除数不能为0");
} else {
result = getCountA()/getCountB();
}
return result;
}
}
public class CalculateOperationFactory {
public static Calculate getCalculate(String sign) {
Calculate cl = null;
switch(sign) {
case "/":
cl = new DivCalculate();
break;
}
return cl;
}
}
import java.util.Scanner;
public class Custom {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Calculate cl = null;
System.out.println("请输入要运算的第一个数字:");
cl.setCountA(sc.nextDouble());
System.out.println("请选择您需要的操作:/");
String operation = sc.next();
System.out.println("请输入要运算的第二个数字:");
cl.setCountB(sc.nextDouble());
Double result = 0.0;
cl = CalculateOperationFactory.getCalculate(operation);
result = cl.getResult();
System.out.println("运算的结果为:" + result);
}
}