您的位置:首页 > 其它

大话设计模式第一讲(简单工厂模式)

2017-03-20 14:48 141 查看

一、简单工厂模式

学会使用面向对象的思想进行编程;

使代码容易维护,容易扩展,又容易复用;

面向对象的四大特性

可维护性:修改时只需要修改需要改的地方;

可扩展性:若需要添加属性或者方法,只需要加入即可, 不需要修改其他;

可复用性:这些类各方法,不仅能用于这里,还可以重复地运用于其他地方;

灵活性好:程序使用起来更加灵活;

面向对象的好处

通过封装、继承、多态把程序的耦合度降低;

使用设计模式使得程序更加灵活;

容易修改,并且易于复用;

用面向对象语言设计四则运算计算器

业务逻辑的封装

将业务逻辑与界面逻辑分开,让它们之间的耦合度下降,才可以达到容易维护和扩展

public class Operation {//父类
private static double number1;
private static double number2;

public double result() {
double result = 0;
return result;
}

public double getNumber1() {
return number1;
}

public void setNumber1(double number1) {
this.number1 = number1;
}

public double getNumber2() {
return number2;
}

public void setNumber2(double number2) {
this.number2 = number2;
}
}


加减乘除子类

class AddOperation extends Operation {//子类加法
@Override
public double result() {
double result = getNumber1() + getNumber2();
return result;
}
}

class SubOperation extends Operation {// 子类减法
@Override
public double result() {
double result = getNumber1() - getNumber2();
return result;
}
}

class MulOperation extends Operation {// 子类乘法
@Override
public double result() {
double result = getNumber1() * getNumber2();
return result;
}
}

class DivOperation extends Operation {// 子类除法
@Override
public double result() {
double result = 0;
try {
result = getNumber1() / getNumber2();
} catch (Exception e) {
System.out.println("除数不能为0!");
}
return result;
}
}


3.简单工厂模式:可以大大降低代码的耦合度

class OperationFactory{//简单工厂模式
public static Operation newOperation(String operation){
Operation oper = null;
switch(operation){
case "+":
oper = new AddOperation();
break;
case "-":
oper = new SubOperation();
break;
case "*":
oper = new MulOperation();
break;
case "/":
oper = new DivOperation();
break;
}
return oper;
}
}


客户端代码

public static void main(String[] args) {
Operation oper;
oper = OperationFactory.newOperation("+");
number1 = 3;
number2 = 4;
double result = oper.result();
System.out.println(result);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  设计模式