云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > java常用设计模式工厂模式的实现

java常用设计模式工厂模式的实现

  • 62 次阅读
  • 3 次下载
  • 2025/6/2 3:46:53

voidgrow(); voidharvest(); voidplant(); }

Apple.java:

publicclassAppleimplementsFruit { }

Grape.java:

publicclassGrapeimplementsFruit { }

Strawberry.java:

publicclassStrawberryimplementsFruit

privatebooleanseedless;

publicvoidgrow(){//葡萄的生长函数代码} publicvoidharvest(){//葡萄的收获函数代码} publicvoidplant(){//葡萄的种植函数代码} publicbooleangetSeedless(){returnseedless;}

publicvoidsetSeedless(booleanseedless){this.seedless=seedless;} privateinttreeAge;

publicvoidgrow(){//苹果的生长函数代码} publicvoidharvest(){//苹果的收获函数代码} publicvoidplant(){//苹果的种植函数代码} publicintgetTreeAge(){returntreeAge;}

publicvoidsetTreeAge(inttreeAge){this.treeAge=treeAge;}

{ }

*下面的源码就是工厂方法模式的重点了,在简单工厂模式中,将这里将FruitGardener定 义为一个类,即园丁要管理园里的所有水果,如果园丁哪天病了,水果都不能管理了 在工厂方法模式中将FruitGardener定义为一个接口,而将管理水果的角色划分得更细, 比如有

葡萄园丁草莓园丁苹果园丁等等具体角色实现FruitGardener接口的工厂 方法源码如下所示:

接口FruitGardener的源码: publicinterfaceFruitGardener {

Fruitfactory(); }

苹果园丁类AppleGardener.java的源码:

publicclassAppleGardenerimplementsFruitGardener { }

葡萄园丁类GrapeGardener.java的源码:

publicclassGrapeGardenerimplementsFruitGardener

publicFruitfactory(){returnnewApple();} privatebooleancoteless;

publicvoidgrow(){//草莓的生长函数代码} publicvoidharvest(){//草莓的收获函数代码} publicvoidplant(){//草莓的种植函数代码} publicbooleangetCoteless(){returncoteless;}

publicvoidsetCoteless(booleancoteless){this.coteless=coteless;}

{ }

草莓园丁类StrawberryGardener.java的源码:

publicclassStrawberryGardenerimplementsFruitGardener { }

由以上源码可以看出,使用工厂方法模式保持了简单工厂模式的优点,克服了其缺点 当在系统中引入新产品时,既不必修改客户端,又不必修改具体工厂角色可以较好 的对系统进行扩展

/*------------------------------------3------------------------------------*/

现在工厂再次大发展,要引进塑料大棚技术,在大棚里种植热带(Tropical)和亚热带的 水果和蔬菜(Veggie)其中水果分为TropicalFruit和NorthernFruit,蔬菜分为TropicalVeggie

和NorthernVeggie园丁包括TropicalGardener和NorthernGardener也就是说, TropicalGardener专门管理TropicalFruit和TropicalGardener,NorthernGardener专门

/****************管理NorthernFruit和NorthernVeggie抽象工厂模式在这个例子中的源码如下所示*****************/ Fruit.java:

publicinterfaceFruit{} NorthernFruit.java:

publicclassNorthernFruitimplementsFruit {

publicFruitfactory(){returnnewStrawberry();} publicFruitfactory(){returnnewGrape();}

}

privateStringname;

publicNorthernFruit(Stringname){} publicStringgetName(){returnname;}

publicvoidsetName(Stringname){this.name=name;}

TropicalFruit.java:

publicclassTropicalFruitimplementsFruit { }

Veggie.java:

publicinterfaceVeggie{} TropicalVeggie.java:

publicclassTropicalVeggieimplementsVeggie { }

NorthernVeggie.java:

publicclassNorthernVeggieimplementsVeggie {

privateStringname;

publicTropicalVeggie(Stringname){} publicStringgetName(){returnname;}

publicvoidsetName(Stringname){this.name=name;} privateStringname;

publicTropicalFruit(Stringname){} publicStringgetName(){returnname;}

publicvoidsetName(Stringname){this.name=name;}

搜索更多关于: java常用设计模式工厂模式的实现 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

voidgrow(); voidharvest(); voidplant(); } Apple.java: publicclassAppleimplementsFruit { } Grape.java: publicclassGrapeimplementsFruit { } Strawberry.java: publicclassStrawberryimplementsFruit privatebooleanseedless; publicvoidgrow(){//葡萄的生长函数代码} publicvoidharvest(){//葡萄的收获函数代码} publicvoidplant(){//葡萄的种植函数代码} publicbooleangetSee

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com