【发布时间】:2010-12-21 12:48:38
【问题描述】:
我正在学习 Erlang,我正在尝试创建一个非常示例的博客程序。然而,我的思想目前被困在 OO 世界中(var p = new Post(); p.Title = ""; p.Save();)。我想了解一些 Erlang 的基本思想。我应该在数据结构(p.Title、p.DateCreated、p.Body)方面做什么,而不是创建 Post 对象?我应该使用元组吗?我想了解做这些事情的推荐方式(在 Erlang 特定和/或函数式编程特定)。还是我在 Erlang 或 FP 中做的根本错误?
需求(OO术语,不知道如何用FP术语解释^_^):
- 创建 Post 对象(id、title、date_created、body、IList)
- 创建评论对象(id、post_id、created_by(名称为字符串)、date_created)
- 一个帖子可以有多个 cmets
- post.AddComment(Comment)
谢谢。
更新: 我不是在寻找在 Erlang 中进行 OOP 的特定方法,除非它是推荐的方法。我正在寻找标准/推荐的方式来做问题中描述的事情,但是我不想在 Erlang 中复制 OOP。
【问题讨论】:
-
您可以使用元组代替对象,但使用记录可能更清晰。 (无论如何,记录在 Erlang 中都会转换为元组。)
-
@Nate 谢谢你,因为我以前不知道这个关键字。这是一个顶级的谷歌搜索结果,仅供参考。 20bits.com/articles/erlang-an-introduction-to-records
-
@Nate 如何使用记录表示私有状态和方法?您能否解释一下如何有效地使用记录来替代类、接口等?
-
@Jeffrey:在 OO 术语中,您是否希望将所有对象都放在内存中,用指针引用,还是考虑将它们存储在某种 DB 中(可能使用 ORM)?跨度>
-
@Zed,目前,出于学习目的,我不会接触数据库(例如 Mnesia)。
标签: functional-programming erlang oop