【发布时间】:2015-03-31 04:53:57
【问题描述】:
我发现自己过于频繁地重新发明一个特定的轮子方式;我想知道是否有任何可以利用的标准化。具体来说,我发现自己在创造这样的东西:
class Name(dict):
family, first, middle, prefixes, suffixes, titles, etc.
class Person(object):
name, dob, address, etc...
class Client(Person):
account_id, billing_address, intake_date, etc.
class Employee(Person):
tax_id, supervisor, roles, etc.
现在,很明显,每个用例的相关数据位都是不同的;但是,为了一致性和互操作性,必须有一些标准与软件中的人的抽象相关。
我正在寻找一个普遍适用的基础抽象,以便我可以用 C++、Python、Java 或其他语言编写一致、可互操作和可读的“人”类。有什么指导吗?
--- 编辑 ---
尽管如前所述,相关的“人”数据往往因一个问题领域或用例而异,但几乎所有处理人类抽象的领域之间也存在一致性。此外,我的经验是,从一个解决小型、明确定义的问题域的简单程序开始,通常会演变成一个更复杂的应用程序,需要与处理非常不同的问题域的程序进行互操作或交换数据。
由于大量软件需要以某种方式使用“人”的抽象,并且由于有关人类的一些核心数据位可以在不同语言和文化中完全不同地表达;随着简单的程序变成复杂的程序,拥有个人数据的参考标准可以让生活变得更加轻松。
【问题讨论】:
-
没有“一些与人的抽象有关的标准”这样的东西,因为这完全取决于问题领域。
-
@PeeHaa:虽然您的解释触及了正确的一点,但这几乎适用于所有事情,但我们经常设法编译可跨问题域使用的有用标准。在这种特殊情况下,FOAF 可以被视为朝着这个方向迈出的一步。
-
@O.R.Mapper 很有趣……这不是很快吗? (不,没有阅读全文:P)
-
@PeeHaa:这总是取决于你在做什么。与许多可重用的东西一样,它旨在帮助标准案例,而特殊案例可能需要全新的东西,或者标准化核心的非标准扩展。举个你可能更习惯的例子,想想电子邮件软件中的地址簿——它们可以用于多种不同的目的(只是存储私人联系人、跟踪业务联系人、跟踪联系人的生日、 ...),但始终使用标准化的地址簿,并且 - 在需要时 - 与其他东西集成。
-
这是一个有趣的概念。 TIL 关于 FOAF
标签: oop standards abstraction personalization