我创建了一个处理项目文本的Singleton类。像这样的Singleton类的适当名称是什么?
这些名字的含义是否有区别?
更新: 该类将项目文本存储为xml,并具有返回正确文本的方法。
function getText(uid : String) : String
答案 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的东西,我会选择不同的东西:
我通常会为类保留Helpers,允许简单地将一些数据转换为要在视图中使用的内容。
答案 6 :(得分:0)
TextCache?听起来你只是用它来存储和检索数据......
答案 7 :(得分:0)
为什么不:ProjectNameTexts
FooTexts.getInstance().getText('hello_world');