设计模式之工厂方法FACTORYMETHOD(二)_第1页
设计模式之工厂方法FACTORYMETHOD(二)_第2页
设计模式之工厂方法FACTORYMETHOD(二)_第3页
设计模式之工厂方法FACTORYMETHOD(二)_第4页
设计模式之工厂方法FACTORYMETHOD(二)_第5页
免费预览已结束,剩余2页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第第页设计模式之工厂方法FACTORYMETHOD(二)设计模式之工厂方法FACTORYMETHOD(二)

发表于:2023-05-26来源::点击数:标签:

派生类为这个选拔基类(Seeding)分别建立一个实例来调用这些方法。我们现在建立这两个具体的选拔子类:StraightSeeding类CircleSeeding类。PrelimEvent类将返回CircleSeeding类的实例,TimedFinalEvent类则返回StraightSeeding类实例。通过整个事件层次,

派生类为这个选拔基类(Seeding)分别建立一个实例来调用这些方法。我们现在建立这两个具体的选拔子类:StraightSeeding类CircleSeeding类。PrelimEvent类将返回CircleSeeding类的实例,TimedFinalEvent类则返回StraightSeeding类实例。

通过整个事件层次,可以看到PrelimEvent类、TimedFinalEvent类都包含getSeeding方法,PrelimEvent类将返回CircleSeeding类的实例,TimedFinalEvent类则返回StraightSeeding类实例。在这个简单的例子当中我们并没有指出真正的工厂(Factory),然而,实例化哪一个Event类决定了哪一个Seeding类将被实例化。

虽然它看起来像是在两个类之间存在一对一相应的通信。但,这不是必需的。可以有许多不同类型的Events类但他们只使用少一部分Seeding类。

Swimmer类

Swimmer类包含一些游泳运动员的具体信息和在选拔之后修改运动员的组以及泳道的方法。Event类在数据库(在这个例子中为文本文件)读取运动员信息。当调用Event类的getSeeding方法时将这个运动员的集合传递到Seeding类。

Events类

我们已经定义了一个抽象基类,在实际的应用当中,我们只是使用它来读取游泳运动员的数据信息(在这个例子中为文本文件)。

Prelimevent类返回CircleSeeding实例

PublicClassPrelimevent

InheritsEvents

DimsdAsSeeding

PublicOverridesFunctiongetSeeding()AsSeeding

ReturnNewCircleSeeding(swmmers,numLanes)

EndFunction

PublicOverridesFunctionisFinal()AsBoolean

isFinal=False

EndFunction

PublicOverridesFunctionisPrelim()AsBoolean

isPrelim=True

EndFunction

PublicOverridesFunctionisTimedFinal()AsBoolean

isTimedFinal=False

EndFunction

PublicSubNew(ByValFilenameAsString,ByVallanesAsInteger)

MyBase.New(Filename,lanes)

numLanes=lanes

EndSub

EndClass

TimedFinalEvent类返回StraightSeeding实例

publicClassTimedFinalEvent

InheritsEvents

PublicSubNew(ByValFilenameAsString,ByVallanesAsInteger)

MyBase.New(Filename,lanes)

EndSub

'

PublicOverridesFunctiongetSeeding()AsSeeding

DimsdAsSeeding

'createseedingandexecuteit

sd=NewStraightSeeding(swmmers,numLanes)

sd.seed()

getSeeding=sd

EndFunction

'

PublicOverridesFunctionisFinal()AsBoolean

isFinal=False

EndFunction

'

PublicOverridesFunctionisPrelim()AsBoolean

isPrelim=False

EndFunction

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论