gpt4 book ai didi

actionscript-3 - 关于带接口(interface)的类实现问题

转载 作者:行者123 更新时间:2023-12-04 08:25:26 27 4
gpt4 key购买 nike

我创建了以下用于共享图像的类。它们实现了一个接口(interface),但我需要一种通过用户交互在它们之间切换的方法。我已经通过以下方式完成了它:

enter image description here

如您所见,服务 1 和服务 2 实现了 爱共享服务 , 并继承自 Polimorph分享 .

PolimorphSharing 是一个简单的抽象类,它实现了我希望从服务 1 和服务 2 公开的方法。这些方法随后将在服务 1 和服务 2 上被覆盖。

因为我需要一种在运行时切换服务的方法,所以我创建了一个继承自 PolimorphSharing 的网关类。然后我可以通过以下方式调用它:

private var sharingService:PolimorphSharing = new SharingServicesGW('svc1').createService();

这一切都完美无缺,我现在可以毫无问题地在服务之间切换。但是,我觉得它有问题,所以我想请你们一些关于如何更好地实现它的建议。

这里的任何意见将不胜感激。我觉得我正在实现 工厂模式这里是艰难的道路。

更新:
只是为此添加更多见解。基本上这里的想法是让我的客户能够使用各种不同的公共(public)共享服务(例如 imageshack、imgur 等)上传图像。我希望我的客户能够选择将图像发布到的服务(因此“通过用户交互在它们之间切换”问题的一部分。

进行上传位的方法是 requestShareImage(), 处理结果()只需将返回的任何内容转换为独特的格式,因此我的客户可以始终以相同的方式读取它。 获取对象() 是我的访问器,onIOError 将使用任何公共(public) API 处理异常

提前谢谢大家,

最佳答案

SharingServicesGW 是一个工厂。然而,它没有必要——也不应该——从 PolimorphSharing 继承。而且你这样做有点歪斜。客户端应该使用接口(interface)类型的对象,而不是抽象类型的对象。
您的接口(interface)应该定义公共(public) API,而不是您的抽象基类。事实上,在 AS3 中,接口(interface)只能定义公共(public)成员,而伪抽象类可以强制实现 protected 成员。

- 编辑 -

这是我将如何做的UML图
enter image description here

关于actionscript-3 - 关于带接口(interface)的类实现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7381127/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com