java深入浅出设计模式----简单的工厂模式(一)----业务逻辑分离
2015-01-14 17:03
471 查看
现在可扩展性和可维护性特别强,即便是想要计算多个数,那也很容易了,改动的地方很少。而且还能防止恶意的程序员篡改代码。
如果需要进行两个以上的数字的运算,在该接口中添加方法就行了。
加法
乘法
............随便来一个算法都可以实现了。
具体的用法:
源码下载:点我下载
如果需要进行两个以上的数字的运算,在该接口中添加方法就行了。
package separatetwo.operate; public interface Operate { public abstract int getResult(int numberOne, int numberTwo); }
加法
package separatetwo.operate; public class Add implements Operate { private Add() { }; private static Add addInstance = null; public static Add getAddInstance() { if (addInstance == null) { addInstance = new Add(); } return addInstance; } @Override public int getResult(int numberOne, int numberTwo) { return numberOne + numberTwo; } }减法
package separatetwo.operate; public class Sub implements Operate { private Sub() { }; private static Sub subInstance = null; public static Sub getSubInstance() { if (subInstance == null) { subInstance = new Sub(); } return subInstance; } @Override public int getResult(int numberOne, int numberTwo) { return numberOne - numberTwo; } }
乘法
package separatetwo.operate; public class Mul implements Operate { private Mul() { }; private static Mul mulInstance = null; public static Mul getMulInstance() { return mulInstance == null ? new Mul() : mulInstance; } @Override public int getResult(int numberOne, int numberTwo) { return numberOne * numberTwo; } }除法
package separatetwo.operate; public class Div implements Operate { private Div() { }; private static Div divInstance = null; public static Div getDivInstance() { return divInstance == null ? new Div() : divInstance; } @Override public int getResult(int numberOne, int numberTwo) { if(numberTwo != 0){ return numberOne / numberTwo; } return Integer.MIN_VALUE; } }
............随便来一个算法都可以实现了。
具体的用法:
package separatetwo; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import separatetwo.operate.Div; public class ShowData { public static void main(String[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); // 输入第一个数 System.out.println("请输入第一个数:"); String num1 = reader.readLine(); // 输入第二个数 System.out.println("请输入第二个数:"); String num2 = reader.readLine(); // 加法 // int result = Add.getAddInstance().getResult(Integer.valueOf(num1), Integer.valueOf(num2)); // System.out.print("计算结果是:"); // System.out.println(result); // 减法 // System.out.println(Sub.getSubInstance().getResult(Integer.valueOf(num1), Integer.valueOf(num2))); // 乘法 // System.out.println(Mul.getMulInstance().getResult(Integer.valueOf(num1), Integer.valueOf(num2))); // 除法 int result = Div.getDivInstance().getResult(Integer.valueOf(num1), Integer.valueOf(num2)); if(result == Integer.MIN_VALUE){ System.out.println("除数为0了"); } System.out.println(result); } }
源码下载:点我下载
相关文章推荐
- java深入浅出设计模式----简单的工厂模式(一)----初学者容易犯的错误(一)
- 简单设计模式实现业务逻辑与流程逻辑的分离
- 简单设计模式实现业务逻辑与流程逻辑的分离
- java深入浅出设计模式----简单的工厂模式(一)----初学者容易犯的错误(二)
- [ASP.NET 设计模式] 用Visual Studio2010搭建一个简单的分层结构示例Step by Step —— 02 业务逻辑层
- java设计模式之简单工厂模式
- java设计模式-创建模式之 简单工厂,工厂方法和抽象工厂的区别总结
- 设计模式之—简单工厂方法(StaticFactory )-Java实现
- Java设计模式学习1—简单工厂模式
- java 设计模式-创建模式之简单工厂模式
- java设计模式之简单工厂模式
- 黑马程序员-Java _ 简单工厂设计模式(Plant Pattern)
- 设计模式--创建模式--简单工厂模式--java
- Java设计模式----------简单工厂类+工厂方法(FactoryMethod)
- Java 设计模式中,简单工厂、工厂方法、抽象工厂的区别
- JAVA设计模式 — 简单工厂模式
- Java设计模式:工厂模式(一)简单工厂模式
- JAVA设计模式:简单工厂、工厂方法、抽象工厂之小结与区别
- Java实践之路(设计模式)——工厂模式(简单工厂)
- java中的设计模式(一)--简单工厂模式