教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 法律文档 >

《Java设计模式》结课论文(2)

来源:网络收集 时间:2026-09-02
导读: 葡萄类的源代码如下所示。可以看出,Grape 类同样实现了水果接口,从而是水果类型的一种子类型。 代码清单3:类Grape 的源代码 public class Grape implements Fruit { private boolean seedless; //生长 public vo

葡萄类的源代码如下所示。可以看出,Grape 类同样实现了水果接口,从而是水果类型的一种子类型。

代码清单3:类Grape 的源代码 public class Grape implements Fruit { private boolean seedless; //生长

public void grow() {

log(\} //收获

public void harvest() {

log(\} //种植

public void plant() {

log(\}

//辅助方法

public static void log(String msg) { System.out.println(msg); }

// 有无籽的取值方法 public boolean getSeedless() { return seedless; }

//有无籽的赋值方法

public void setSeedless(boolean seedless) { this.seedless = seedless; } }

Strawberry 类实现了Fruit 接口,因此,也是水果类型的子类型,其源代码如下所示。

代码清单4:类Strawberry 的源代码 public class Strawberry implements Fruit { //生长

public void grow() {

log(\} //收获

public void harvest() {

log(\} //种植

public void plant() {

log(\}

//辅助方法

public static void log(String msg) { System.out.println(msg); }

}

农场的园丁也是系统的一部分,自然要由一个合适的类来代表。这个类就FruitGardener 类,其结构由下面描述。

FruitGardener 类会根据客户端的要求,创建出不同的水果对象,比如苹果(Apple),葡萄(Grape)或草莓(Strawberry)的实例。而如果接到不合法的要求,FruitGardener 类会抛出BadFruitException 异常。 园丁类的源代码如下所示。

代码清单5:FruitGardener 类的源代码 public class FruitGardener { //静态工厂方法

public static Fruit factory(String which) throws BadFruitException { if (which.equalsIgnoreCase(\ return new Apple(); }

else if (which.equalsIgnoreCase(\ return new Strawberry(); }

else if (which.equalsIgnoreCase(\ return new Grape(); } else {

throw new BadFruitException(\ } } }

可以看出,园丁类提供了一个静态工厂方法。在客户端的调用下,这个方法创建客户端所需要的水果对象。如果客户端的请求是系统所不支持的,工厂方法就会抛出一个BadFruitException 异常。这个异常类的源代码如下所示。 代码清单6:BadFruitException 类的源代码

public class BadFruitException

extends Exception {

public BadFruitException(String msg) { super(msg); } }

在使用时,客户端只需调用FruitGardener 的静态方法factory()即可。请见下面的示意性客户端源代码。

代码清单7:实现种植即Main()的实现 public class PlantFruit { public PlantFruit() { }

public static void main(String[] args) { PlantFruit plantfruit = new PlantFruit(); try {

//种植葡萄

FruitGardener.factory(\ FruitGardener.factory(\ FruitGardener.factory(\

System.out.println(\ //种植苹果

FruitGardener.factory(\

FruitGardener.factory(\ FruitGardener.factory(\

System.out.println(\ //种植草莓

FruitGardener.factory(\ FruitGardener.factory(\ FruitGardener.factory(\

System.out.println(\ }

catch (BadFruitException e) { } } }

到此为止,我们的简单程序已经设计完成,我们可以通过创建FruitGardener对象来完成水果的种植,无论你要种什么,只需调用对象中的factory()方法。 工厂类的示意性源代码如下所示。可以看出,这个工厂方法创建了一个新的具体产品的实例并返还给调用者。 代码清单8:Creator 类的源代码 public class Creator {

//静态工厂方法

public static Product factory() {

return new ConcreteProduct(); } }

…… 此处隐藏:407字,全部文档内容请下载后查看。喜欢就下载吧 ……
《Java设计模式》结课论文(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/435872.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)