小塌客

石头的博客

Category "Erlang"

Erlang OOP

近两个月没有更新博客了,为了证明shitou还活着,需要动动了..


前段时间刚换了工作,一直在忙,还有在和两个朋友业余时间开发一款SNS的WEB Game, 纸牌类的,架构就是JavaScript + Flash Socket + Erlang + MongoDB, 更多关于游戏的内容这里就不多透露了,上线时shitou会专门开贴广告宣传的,哈哈..

 

其实这半年时间除了在忙工作的事情之外shitou一直在关注web game方面的资料,之前尝试的C2C, SNS,感觉这块在国内独立开发者是很难做起来的,尤其是国内环境的影响....(省略2万字)

 

好了,下面开始正题,关于Erlang OOP(面向对象)特性

 

其实Erlang本身就是Function Language, 所谓OOP特性什么的都不是Erlang所强调的重点,Erlang帮主Joe在Erlang程序设计 一书中也一字未提Erlang的OOP内容,最近在用Erlang开发游戏的Socket Server时遇到其中一个模块设计如果用OOP的概念来做的话会更合适,想起了之前在mochiweb的源码中关于http request的解析module就是用的OOP的设计思路,回头再次查看mochiweb的源码,又google一翻,终于得到了解决办法,下面show一个简单的例子:

%oo.erl
-module(oo, [QS]).
-export([get_qs/0]).

new(Qs) ->
       instance(Qs).
get_qs() ->
       QS.

>A = oo:new("hello").
>A:get_qs().

Erlang的OOP功能算是Erlang的一个隐藏特性了,毕竟Erlang是一个函数编程语言,可能老乔(Joe)也不想提这方面的东西吧,关于更多的OOP特性,可以参考这篇文章PDF, 还可以看下mochiweb的源码.