java 学习当中我遇到的第一个设计模式-----王志亭

设计模式简单的来说,就是代码段的一段代码分割出去写在可调用的类中。作用就是使代码更加清晰以及管理。

例子:

1,,设计抽象父类,包含两个数字及抽象方法。

2,
设计四个子类,包含四个运算符
3,
在创建一个类,包含选择运算符的代码段
4,
调用及输出
注意:本例子中把选择运算符的代码段分割出 MyMain 方法,这就是一个设计模式。
设计抽象父类,包含两个数字及抽象方法。
package cn.day2;

public abstract class Operation {
	public int numLeft;
	public int numRight;
	public abstract int cale();
}


设计四个子类,包含四个运算符
package cn.day2;

public class add extends Operation {

	@Override
	public int cale() {

		return this.numLeft+this.numRight;
	}

}
package cn.day2;

public class Div extends Operation{

	@Override
	public int cale() {
		
		return this.numLeft/this.numRight;
	}

}
package cn.day2;

public class Mu extends Operation {

	@Override
	public int cale() {

		return this.numLeft*this.numRight;
	}

}
package cn.day2;

public class Sub extends Operation {

	@Override
	public int cale() {

		return this.numLeft-this.numRight;
	}

}

在创建一个类,包含选择运算符的代码段
package cn.day2;

public class OperationFactoray {
	public static Operation getInstands(String oper){
		//定义一个父类
				Operation caculator=null;
				
				switch (oper) {
				case "+":
					caculator=new add();
					break;
				case "-":
					caculator=new Sub();
					break;
				case "*":
					caculator=new Mu();
					break;
				case "/":
					caculator=new Div();
					break;
				}
				return caculator;
	}
}

调用及输出
package cn.day2;

import java.util.Scanner;

public class Mymain {

	public static void main(String[] args) {
		@SuppressWarnings("resource")
		Scanner in=new Scanner(System.in);
		while(true){
		System.out.println("请输入第一个数字:");
		int num1=in.nextInt();
		
		System.out.println("亲,请输入运算符");
		String oper= in.next();
		

		System.out.println("亲,请输入第2个操作数");
		int num2 = in.nextInt();
		Operation caculator = OperationFactoray.getInstands(oper);
		caculator.numLeft=num1;
		caculator.numRight=num2;
		int result = caculator.cale();
		System.out.println("我得到的数字是:"+result);
		}
	}

}

  

原文地址:https://www.cnblogs.com/bb1008/p/6763584.html