我应该使用什么样的模式/名字?

时间:2010-12-15 21:33:21

标签: actionscript-3 design-patterns naming-conventions singleton

我创建了一个处理项目文本的Singleton类。像这样的Singleton类的适当名称是什么?

  • TextManager?
  • TextHandler?
  • TextController?

这些名字的含义是否有区别?

更新: 该类将项目文本存储为xml,并具有返回正确文本的方法。

function getText(uid : String) : String

8 个答案:

答案 0 :(得分:5)

我认为它不涉及添加/删除/ ...( - >管理)文本(可能只是加载),所以它不是“真正的” 经理

它也没有“ 控制 ”文本(“你只能从...中访问”,“如果是,则返回该键的另一个值。 ..“)。

课程 为您提供 文本。

我想这是某种 本地化文字提供商 ,对吗?

那你为什么不称它为 LocalizedTextProvider

答案 1 :(得分:4)

我通常称之为

TextUtility

TextHelper

'handler'的问题在于它意味着某种事件处理。与“控制器”相同,它在不同的背景下具有意义。

答案 2 :(得分:3)

我认为Controller对于MVC模型是“保留的”,但我可能错了。 TextHandler和TextManager可能会更好,但至少在我工作的地方,服务/类中的“经理”通常是不鼓励的,因为假设每个类“管理”某些东西(这可能仅仅是文化特定的)。 / p>

我会从这三个中投票给TextHandler。它也可能略微依赖于您的编程语言。

答案 3 :(得分:2)

这听起来像是我的服务或存储库...

TextService还是TextRepository? TextModel?

但是让我稍微回顾一下...... Singleton模式是一种非常糟糕的方式来访问这样的东西。只是谷歌“单身模式问题”,如果你想看看我在说什么。另外,在AS3中,您没有私有构造函数,因此您无法以纯粹的方式实现Singleton模式。

相反,我真的更喜欢通过“控制反转”(IoC)容器进行合成。 ActionScript中有很多它们。它们可以非常轻巧,但它们可以非常优雅地分离您的组件。

很抱歉在这里注入我的想法... ymmv:)

编辑 - 有关消除单例模式的更多信息

我在您的代码中写了几个strategies on eliminating singletons。本文是为C#编写的,但所有相同的原则都适用。在那篇文章中,我没有明确谈论IoC容器。

这是关于IoC in Flex的非常好的文章。此外,一些框架为您提供了IoC功能:

答案 4 :(得分:1)

你提出的所有三个名字都可以用同样的方式解释。有些人喜欢处理程序而有些人可能会说控制器......这确实是语义问题。无论你选择采用哪种惯例,都要保持一致。您应该捕获的常见概念是您所描述的类没有做任何事情。它应该只负责委托,因为这是管理者对经典MVC范例中的员工和控制者所做的事情。

答案 5 :(得分:1)

因为我在事件/消息处理上下文中通常有Handler。控制器用于操作和MVC的东西,我会选择不同的东西:

  • TextResources.get(键)
  • I18n.get(key)(如果您的课程实际上用于国际化)

我通常会为类保留Helpers,允许简单地将一些数据转换为要在视图中使用的内容。

答案 6 :(得分:0)

TextCache?听起来你只是用它来存储和检索数据......

答案 7 :(得分:0)

为什么不:ProjectNameTexts

FooTexts.getInstance().getText('hello_world');