简单工厂设计模式

1.什么是设计模式

        设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。

2.设计模式的作用

为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。 设计模式使代码编写真正工程化;设计模式是 软件工程 的基石
脉络,如同大厦的结构一样。
那么如何实习那代码的可重用行呢?这个就涉及到面向对象的几个原则:
1.单一职责原则,就是一个类只负责一件事情。
 
2.开放-封闭原则。对扩展开放,对修改关闭。坚持这个原则就必须尽量考虑接口封装,抽象机制和多态技术。
 
3.里氏代换原则(Liskov Substit ution Principle,LSP),如果调用的是父类的话,那么换成子类也完全可以 运行。
 
4.依赖倒转原则(Dependency Inversion Principle,DIP),指在软件里面,把父类都替换成它的子类,程序的行为没有变化。 简单的说,子类型能够替换掉它们的父类型
 
5.接口隔离原则(Interface Segregation Principle, ISP),使用多个专门的接口比使用单个接口要好的多。
 

3.简单工厂设计模式

简单工厂模式是类的创建模式,又叫做静态工厂方法(Static Factory Method)模式。简单工厂模式是由一个工厂对象决创建出哪一种产品类的实例。
 使用情景: 
        再不确定会有多少个处理操作时应该考虑使用简单工厂模式,如针对同样的接收到的数据,处理的逻辑可能会不同,可能以后还会增加新的操			作。 
 
简单实现:

1.父类

public interface Operator {
Object operator(Object... objs);
}

2.子类

//加法
public class OperatorAdd implements Operator {



@Override
public Object operator(Object... objs) {
if(objs!=null && objs.length==2){
return Double.parseDouble(objs[0].toString())+Double.parseDouble(objs[1].toString());
}
return null;
}




}
 
//减法
public class OperatorSub implements Operator {



@Override
public Object operator(Object... objs) {
if(objs!=null && objs.length==2){
return Double.parseDouble(objs[0].toString())-Double.parseDouble(objs[1].toString());
}
return null;
}




}

3.工厂类

public class Factory {
public static Operator getOperatorInstance(String opt,Object... objs){
switch(opt){
case "+":
return new OperatorAdd();
case "-":
return new OperatorSub();
default:
break;
}
return null;
}
}

4.测试类

public class Test {
public static void main(String[] args) {
String _strnum1;
String _strnum2;
String operator;
Scanner scan=new Scanner(System.in);
System.out.println("请输入参数");
_strnum1=scan.nextLine();
_strnum2=scan.nextLine();
System.out.println("请输入操作:");
operator=scan.nextLine();
System.out.println("计算结果为:"+Factory.getOperatorInstance(operator).operator(_strnum1,_strnum2));
}
}
 
//补充知识点: Object operator(Object... objs); 的参数为可变参数,可以有也可以没有
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值