1.3 代码规范
如果你想做一个计算器的话,是怎样操作的
C#实现的。和Java语法差不多
1.8 业务封装
采用面向对象思想将业务计算逻辑和界面逻辑分开。
Operation类
这个只是运用了面向对象的封装。下面是实现继承和多态。
继承:
public class Operation {
private double numberA;
private double numberB;
public double getNumberA() {
return numberA;
}
public void setNumberA(double numberA) {
this.numberA = numberA;
}
public double getNumberB() {
return numberB;
}
public void setNumberB(double numberB) {
this.numberB = numberB;
}
public double getResult(){
double result = 0;
return result;
}
}
//加法类
class OperationAdd extends Operation {
@Override
public double getResult(){
double result = 0;
result = getNumberA() + getNumberB();
return result;
}
}
//减法类
class OperationSub extends Operation {
@Override
public double getResult(){
double result = 0;
result = getNumberA() - getNumberB();
return result;
}
}
多态:
加减乘数变成了每一个方法,但是要怎样才让计算器知道调用哪个方法。
1.10 简单工厂模式
用一个单独的类来做这个创建实例的过程。
public class OperationFactory {
public static Operation createOperate(int operate){
Operation oper = null;
switch(operate){
case 0:
oper = new OperationAdd();
break;
case 1:
oper = new OperationSub();
break;
case 2:
oper = new OperationMul();
break;
case 3:
oper = new OperationDiv();
break;
default:break;
}
return oper;
}
}
//客户端
public class Main {
public static void main(String[] args){
Operation oper;
oper = OperationFactory.createOperate(0);
oper.setNumberA(1);
oper.setNumberB(2);
double result = oper.getResult();
}
}
结构图:
完整UML类图:
“运算类”的矩形框,代表类的名称,斜体代表抽象类。
第二层是类的特性,通常是字段和属性。
第三层是类的操作,通常是类的方法。注意前面的符号:+表示public,-表示private,#表示protected
继承关系用空心三角形+实线来标识
实现接口用空心三角形+虚线表示
当企鹅类中引用了气候类的对象,用关联关系表示。用实线箭头。
聚合关系:每只大雁属于雁群,一个雁群可有多个大雁,A对象包含B对象,但B对象不是A对象的一部分,属于“弱拥有”关系。一个大雁类中有一个大雁的数组。用空心菱形+实线箭头表示。
合成(组合)关系:
“强拥有”关系。鸟和翅膀的关系,每次实例化鸟类时,必须在内部实例化翅膀。用实心菱形+实线箭头,两端还有数字。表示这一端的类可以有几个实例。
依赖关系:
动物有几大特征,比如新陈代谢,繁殖。新成代谢就需要氧气、水、食物等。他们之间就是依赖关系。用虚线箭头来表示。