Java实现简单工厂模式

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对象的一部分,属于“弱拥有”关系。一个大雁类中有一个大雁的数组。用空心菱形+实线箭头表示。

合成(组合)关系
“强拥有”关系。鸟和翅膀的关系,每次实例化鸟类时,必须在内部实例化翅膀。用实心菱形+实线箭头,两端还有数字。表示这一端的类可以有几个实例。

依赖关系
动物有几大特征,比如新陈代谢,繁殖。新成代谢就需要氧气、水、食物等。他们之间就是依赖关系。用虚线箭头来表示。
这里写图片描述

猜你喜欢

转载自blog.csdn.net/a464700300/article/details/79881076
今日推荐