欢迎来到天天文库
浏览记录
ID:33117276
大小:50.50 KB
页数:12页
时间:2019-02-20
《java工厂设计模式论文》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、一.程序设计目标 我们组写了个简单的水果生产程序,描述农场种植水果的过程,旨在通过此次设计更进一步了解工程设计模式,加强编程的结构化能力。 开发环境:JDK1.5开发工具:JBuilder2006二.程序设计介绍1.程序结构 我们组为一个水果公司写了个简单的生产程序,该公司专门向市场销售各类水果。我们为程序建立了一个名为farm的工程,程序结构比较简单,总共有7个类,并且都放在一个默认的包中。其层次结构可从下图体现出来:对各个类的说明:Fruit类:水果接口,实现水果方法Apple类:苹果类,实现Fruit
2、接口Grape类:葡萄类,实现Fruit接口Strawberry类:草莓类,实现Fruit接口FruitGardener类:园丁类,可种植各种水果BadFruitException类:要种植的水果不在公司经营的水果范围之内,抛出种植异常PlantFruit类:实现main()方法2.程序设计步骤在这个系统里需要描述下列的水果:葡萄Grape草莓Strawberry苹果Apple水果与其他的植物有很大的不同,就是水果最终是可以采摘食用的。那么一个自然的作法就是建立一个各种水果都适用的接口,以便与农场里的其他植物区分开。
3、如下图所示。水果接口规定出所有的水果必须实现的接口,包括任何水果类必须具备的方法:种植plant(),生长grow()以及收获harvest()。接口Fruit的类图如下所示。这个水果接口的源代码如下所示。代码清单1:接口Fruit的源代码publicinterfaceFruit{//生长voidgrow();//收获voidharvest();//种植voidplant();}描述苹果的Apple类的源代码的类图如下所示。Apple类是水果类的一种,因此它实现了水果接口所声明的所有方法。另外,由于苹果是多年生植物,
4、因此多出一个treeAge性质,描述苹果树的树龄。下面是这个苹果类的源代码。代码清单2:类Apple的源代码publicclassApple implementsFruit{privateinttreeAge;//生长publicvoidgrow(){ log("Appleisgrowing...");}//收获publicvoidharvest(){ log("Applehasbeenharvested.");}//种植publicvoidplant(){ log("Applehasbeenplan
5、ted.");}//辅助方法publicstaticvoidlog(Stringmsg){ System.out.println(msg);}//树龄的取值方法publicintgetTreeAge(){ returntreeAge;}//树龄的赋值方法publicvoidsetTreeAge(inttreeAge){ this.treeAge=treeAge;}}同样,Grape类是水果类的一种,也实现了Fruit接口所声明的所有的方法。但由于葡萄分有籽和无籽两种,因此,比通常的水果多出一个seedle
6、ss性质,如下图所示。葡萄类的源代码如下所示。可以看出,Grape类同样实现了水果接口,从而是水果类型的一种子类型。代码清单3:类Grape的源代码publicclassGrape implementsFruit{privatebooleanseedless;//生长publicvoidgrow(){ log("Grapeisgrowing...");}//收获publicvoidharvest(){ log("Grapehasbeenharvested.");}//种植publicvoidplant()
7、{ log("Grapehasbeenplanted.");}//辅助方法publicstaticvoidlog(Stringmsg){ System.out.println(msg);}//有无籽的取值方法publicbooleangetSeedless(){ returnseedless;}//有无籽的赋值方法publicvoidsetSeedless(booleanseedless){ this.seedless=seedless;}}下图所示是Strawberry类的类图。Strawberry
8、类实现了Fruit接口,因此,也是水果类型的子类型,其源代码如下所示。代码清单4:类Strawberry的源代码publicclassStrawberry implementsFruit{//生长publicvoidgrow(){ log("Strawberryisgrowing...");}//收获publicvoidharvest(
此文档下载收益归作者所有