博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
工厂方法
阅读量:5283 次
发布时间:2019-06-14

本文共 2273 字,大约阅读时间需要 7 分钟。

2018-11-02 20:32:37 开始写


 


 

Operation.java类

1 package FactoryMethod;2 3 public abstract class Operation {4     public abstract float getResult(float firstNum, float secondNum);5 }

AddOperation.java类

1 package FactoryMethod; 2  3 public class AddOperation extends Operation { 4  5     @Override 6     public float getResult(float firstNum, float secondNum) { 7         // TODO Auto-generated method stub 8         return firstNum + secondNum; 9     }10 11 }

共有加减乘除四个来,这就举出一个


IFactory.java类

1 package FactoryMethod;2 3 public interface IFactory {4     public Operation generateOper();5 }

AddOperationFactory.java类

1 package FactoryMethod; 2  3 public class AddOperationFactory implements IFactory { 4  5     @Override 6     public Operation generateOper() { 7         // TODO Auto-generated method stub 8         return new AddOperation(); 9     }10 11 }

共有加减乘除四个来,这就举出一个


Computer.java类

1 package FactoryMethod; 2  3 import java.util.Scanner; 4  5 public class Computer { 6  7     public static void main(String[] args) { 8         // TODO Auto-generated method stub 9         Scanner scan = new Scanner(System.in);10         System.out.println("请输入第一个数:");11         float firstNum = scan.nextFloat();12         System.out.println("请输入第二个数:");13         float secondNum = scan.nextFloat();14         System.out.println(count(firstNum, secondNum));15     }16     private static float count(float firstNum, float secondNum) {17         IFactory ifactory = new AddOperationFactory();18         Operation operation = ifactory.generateOper();19         return operation.getResult(firstNum, secondNum);20     }21 22 }

说明:

共需要1个抽象类、n个继承抽象类的具体实现的类(如加减乘除)、1个接口类、n个实现接口类的具体实现的类(返回继承抽象类的具体实现类)、1个主方法调用。

在主方法中有

IFactory ifactory = new AddOperationFactory();向上转型1次(接口类)        Operation operation = ifactory.generateOper();向上转型1次(抽象类)        return operation.getResult(firstNum, secondNum);最后调用子类方法返回结果

谢谢、Thank you、Salamat Do(撒拉玛特朵)、あリがCám o*n(嘉蒙)とゥ(阿里嘎都)、감사합니다 (勘三哈咪瘩)、terima Kasih(得力马卡系 )、kob-khun(寇布库恩)、dhanyavaad(达尼阿瓦德)、toda(透达)、te?ekkür ederim(特谢库尔埃戴里姆)、Dzie,kuje(以库以而)、 Spasibo(思巴喜柏)、Danke(但可)、shokran(休克朗)、Obrigada(欧布哩嘎搭)、dank u(当Q)、Merci(梅呵西)、Gracias(格拉喜亚思) 、Grazie(格啦姬)、Благодарности、Tak、Kiitos、Díky、Hvala、Mul?umesc、Takk、Ευχαριστ

转载于:https://www.cnblogs.com/YUJIE666/p/9898382.html

你可能感兴趣的文章
Parallel Tests
查看>>
配置Nginx支持SSL SNI(一个IP绑定多个证书) 以及Haproxy实现多域名证书
查看>>
Django框架初识
查看>>
mysql 字段属性 与 排序
查看>>
.net常考面试题
查看>>
android ListView实现圆角实例教程二
查看>>
Android USB配件模式
查看>>
移动互联网广告 - 第六更 - 移动广告的作弊方法及反作弊 - 2016/12/07
查看>>
虚拟DOM,真实的JS对象,操作内存中的js对象要比操作DOM节省性能?
查看>>
拓扑排序-hihocoder1175
查看>>
encodeURIComponent与URLDecoder.decode用法
查看>>
LinkedList 和 ArraryList的区别. <java>
查看>>
大数据学习大纲,大数据应该怎么学
查看>>
HTTP协议学习笔记
查看>>
sublime 打开命令窗口监控
查看>>
2014-9-4 技术创业分享汇
查看>>
利用上载漏洞,攻击asp.net 网站
查看>>
Springboot整合Kfka
查看>>
数学·序言
查看>>
jstack 命令介绍
查看>>