/**
- @Author: cxh
- @CreateTime: 18/1/3 23:32
- @ProjectName: JavaBaseTest
*/
public interface Operation {
void setFirst(int first);
void setSecond(int second);
int getResult();
}
/**
-
@Author: cxh
-
@CreateTime: 18/1/3 23:30
-
@ProjectName: JavaBaseTest
*/
public class AddOperation implements Operation {
private int first,second;
@Override
public void setFirst(int first) {
this.first=first;
}
@Override
public void setSecond(int second) {
this.second=second;
}
public int getResult(){
return first+second;
}
}
/**
-
@Author: cxh
-
@CreateTime: 18/1/3 23:43
-
@ProjectName: JavaBaseTest
*/
public class MulOperation implements Operation {
private int first,second;
public void setFirst(int first) {
this.first = first;
}
public void setSecond(int second) {
this.second = second;
}
@Override
public int getResult() {
return first*second;
}
}
/**
-
@Author: cxh
-
@CreateTime: 18/1/3 23:43
-
@ProjectName: JavaBaseTest
*/
public class MulOperation implements Operation {
private int first,second;
public void setFirst(int first) {
this.first = first;
}
public void setSecond(int second) {
this.second = second;
}
@Override
public int getResult() {
return first*second;
}
}
/**
-
@Author: cxh
-
@CreateTime: 18/1/3 23:44
-
@ProjectName: JavaBaseTest
*/
public class DivOperation implements Operation {
private int first,second;
public void setFirst(int first) {
this.first = first;
}
public void setSecond(int second) {
this.second = second;
}
@Override
public int getResult() {
try{
return first/second;
}catch (Exception e){
return 0;
}
}
}
/**
- @Author: cxh
- @CreateTime: 18/1/3 23:33
- @ProjectName: JavaBaseTest
*/
public interface CreateFactory {
Operation getOperation();
}
/**
- @Author: cxh
- @CreateTime: 18/1/3 23:34
- @ProjectName: JavaBaseTest
*/
public class AddFactory implements CreateFactory {
@Override
public Operation getOperation() {
return new AddOperation();
}
}
/**
- @Author: cxh
- @CreateTime: 18/1/3 23:36
- @ProjectName: JavaBaseTest
*/
public class SubFactory implements CreateFactory {
@Override
public Operation getOperation() {
return new SubOperation();
}
}
/**
- @Author: cxh
- @CreateTime: 18/1/6 11:43
- @ProjectName: JavaBaseTest
*/
public class MulFactory implements CreateFactory {
@Override
public Operation getOperation() {
return new MulOperation();
}
}
/**
- @Author: cxh
- @CreateTime: 18/1/6 11:43
- @ProjectName: JavaBaseTest
*/
public class DivFacotry implements CreateFactory {
@Override
public Operation getOperation() {
return new DivOperation();
}
}
/**
-
@Author: cxh
-
@CreateTime: 18/1/6 11:44
-
@ProjectName: JavaBaseTest
*/
public class Client{
public static void main(String[] args) {
CreateFactory factory;
Operation operation;
//加法
factory=new AddFactory();
operation=factory.getOperation();
operation.setFirst(11);
operation.setSecond(22);
System.out.println("11+22="+operation.getResult());
//减法
factory=new SubFactory();
operation=factory.getOperation();
operation.setFirst(11);
operation.setSecond(22);
System.out.println("11-22="+operation.getResult());
//乘法
factory=new MulFactory();
operation=factory.getOperation();
operation.setFirst(11);
operation.setSecond(22);
System.out.println("11*22="+operation.getResult());
//除法
factory=new DivFacotry();
operation=factory.getOperation();
operation.setFirst(22);
operation.setSecond(11);
System.out.println("22/11="+operation.getResult());
}
}
输出:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。