一个农场公司专门负责培育各种水果,在这个系统中的水果有葡萄,草莓和苹果,其类图如图所示。 请按以下要求编写程序:
1. 应用简单工厂方法模式,在主程序中根据键盘输入的水果名称来完成其生长状态的描述。
2 应用工厂方法模式,在主程序中根据键盘输入的水果名称来完成其生长状态的描述
//新建一个简单工厂类 SimpleFactory.javapublic class SimpleFactory{ // 此处需要定义 static 类型,在客户端 类名。方法调用 public staitc Fruit getFruitObj(String type){ Fruit obj = null; if(type.equals("apple")){ obj = (Fruit) new Apple(); }else if(type.equals("straw")){ obj= (Fruit) new Straw(); }else if(type.equals("grape")){ obj = (Fruit) new Grape(); } return obj; } }//实现水果类 Fruit.javainterface Fruit{ void plant(); //定义种植方法 void grow(); //定义生长方法 void harvest(); }// 实现苹果类 Apple.java//此处草莓和葡萄同理,都实现接口FRUIT public class Apple implements Fruit{ @Override public void plant() { // TODO Auto-generated method stub System.out.print("种植了苹果"); } @Override public void grow() { // TODO Auto-generated method stub System.out.print("苹果生长了"); } @Override public void harvest() { // TODO Auto-generated method stub System.out.print("苹果结果了"); } }//客户端接口public class main{ public staic void main(String args[]){ Fruit fu =SimpleFactory.getfruitobj("apple"); fu.plant(); fu.grow(); fu.harvest(); } }
工厂模式实现
/实现水果类 Fruit.javainterface Fruit{ void plant(); //定义种植方法 void grow(); //定义生长方法 void harvest(); }// 定义一个抽象工厂方法public abstract class Factory { public abstract Fruit getapple(); public static Factory getFruitFactory(Stri ng type){ Factory f = null; if(type.equals("apple")){ f=new AppleFactory(); f.getapple(); } return f; }//定义一个苹果的工厂public class AppleFactory extends Factory{public Apple getapple(){ //返回苹果的对象 return new Apple(); }//定义一个苹果。与上面简单工厂同public class Apple implements Fruit{ @Override public void plant() { // TODO Auto-generated method stub System.out.print("123"); } @Override public void grow() { // TODO Auto-generated method stub } @Override public void harvest() { // TODO Auto-generated method stub } }//定义主函数public class client { public static void main(String[] args) { // TODO Auto-generated method stub //执行 方法 Fruit f =(Fruit) Factory.getFruitFactory("apple"); f.plant(); f.grow(); f.harvest(); }
更多java实现简单工厂模式相关文章请关注PHP中文网!
声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章
刺客信条阴影:贝壳谜语解决方案
3 周前ByDDD
Windows 11 KB5054979中的新功能以及如何解决更新问题
2 周前ByDDD
在哪里可以找到原子中的起重机控制钥匙卡
3 周前ByDDD
节省R.E.P.O.解释(并保存文件)
1 个月前By尊渡假赌尊渡假赌尊渡假赌
刺客信条阴影 - 如何找到铁匠,解锁武器和装甲定制
4 周前ByDDD

热工具

记事本++7.3.1
好用且免费的代码编辑器

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

Atom编辑器mac版下载
最流行的的开源编辑器

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境