Como criar propriedades nos modelos de POO em Lua

210 views
Skip to first unread message

Luciano de Souza

unread,
Jul 14, 2010, 4:54:26 AM7/14/10
to lua...@googlegroups.com

Caros,

Como definir propriedades nos modelos de orientação a objetos de Lua?

Até onde sei, há quatro formas de se implementar POO em Lua:

1. Manipulando diretamente tables e metatables;

2. Utilizando Classlib;

3. Utilizando LOOP;

4. Utilizando LOS.

A bem dizer, as 3 bibliotecas parecem realmente muito, muito boas e consegui criar classes com todas elas. Contudo, se quero, por exemplo, definir uma propriedade "tamanho" para uma classe "cachorro", penso que teria de fazer algo mais ou menos assim:

setmetatable(cachorro, {__index = function(t, k)

if k == 'tamanho' then

return function SetTamanho(K)

end

end}

"SetTamanho" seria o setter da propriedade.

Bom, é claro que algo mais ou menos assim pode ser feito. Mas pergunto? em LOS, em LOOP ou Classlib há algo mais elegant e nativo que implemente o uso de propriedades?

Luciano de Souza

Renato Maia

unread,
Jul 14, 2010, 8:38:07 AM7/14/10
to lua...@googlegroups.com

On 14 Jul 2010, at 05:54, Luciano de Souza wrote:
> Até onde sei, há quatro formas de se implementar POO em Lua:
>
Veja (particularmente a seção Feature Modules):
http://lua-users.org/wiki/ObjectOrientedProgramming

> Bom, é claro que algo mais ou menos assim pode ser feito. Mas
> pergunto? em LOS, em LOOP ou Classlib há algo mais elegant e nativo
> que implemente o uso de propriedades?
>
O LOOP não tem suporte específico (ou mais elegante) para esse tipo de
coisa. Mas veja também:

http://lua-users.org/wiki/ObjectProperties
http://www.lua.org/pil/16.4.html
http://lists.luaforge.net/pipermail/loop-users/2009-February/000004.html

--
Renato Maia
Computer Scientist
Tecgraf/PUC-Rio
__________________________
http://www.inf.puc-rio.br/~maia/

BRUNO ROCHA

unread,
Jul 14, 2010, 1:16:43 PM7/14/10
to lua...@googlegroups.com
...
         Gostaria de reiterar a sua pergunta.
         Dessas 4 formas de modelo orientado
         a objetos qual dessas seria a forma
         mais indicada ?
 
         Principalmente pelo desempenho que elas 
         possam ter. O que eu percebo  é que a programação
         ao modelo da meta-programação é a melhor forma
         da abstração em Lua, porém, seguir o modelo
         da orientação a objetos pela Classlib  é mais indicado
         a Lua ?

   Um abraço a todos .


From: luch...@predialnet.com.br
To: lua...@googlegroups.com
Subject: [lua-br] Como criar propriedades nos modelos de POO em Lua
Date: Wed, 14 Jul 2010 05:54:26 -0300
--
Lua BR - http://groups.google.com/group/lua-br


LEVE SEU MESSENGER PARA ONDE VOCÊ ESTIVER PELO SEU CELULAR. CLIQUE E VEJA COMO FAZER.

Luciano de Souza

unread,
Jul 16, 2010, 12:11:26 PM7/16/10
to Lua BR

Bruno, quanto a desempenho, nada posso dizer. Contudo, lendo o
interessante material que o Renato indicou, observo que provavelmente
há mais do que as quatro formas que citei. Na página, havia uma
interessantíssima implementação de classes com closures em que se
podia inclusive criar métodos privados e públicos.
Comecei utilizando Classlib e agora utilizo LOOP. LOS também parece
muito boa, mas precisaria estudá-la melhor para entender o seu
funcionamento.

On 14 jul, 14:16, BRUNO ROCHA <leviatanp...@hotmail.com> wrote:
> ...
>          Gostaria de reiterar a sua pergunta.
>          Dessas 4 formas de modelo orientado
>          a objetos qual dessas seria a forma
>          mais indicada ?
>
>          Principalmente pelo desempenho que elas  
>          possam ter. O que eu percebo  é que a programação
>          ao modelo da meta-programação é a melhor forma
>          da abstração em Lua, porém, seguir o modelo
>          da orientação a objetos pela Classlib  é mais indicado
>          a Lua ?
>
>    Um abraço a todos .
>
> _________________________________________________________________
> TRANSFORME SUAS FOTOS EM EMOTICONS PARA O MESSENGER. CLIQUE AQUI PARA COMEÇAR.http://ilm.windowslive.com.br/?ocid=ILM:Live:Hotmail:Tagline:senDimen...

Aécio Costa

unread,
Jul 16, 2010, 2:41:20 PM7/16/10
to lua...@googlegroups.com
para  começar com Loop, alguém sabe onde tem um tutorial pra implementar??

2010/7/16 Luciano de Souza <luch...@gmail.com>



--
Aécio Costa
Analista de Sistemas/Desenvolvedor Delphi, Java, Ginga-NCL, Ginga-J e Lua
Colaborador Active Delphi/GUJ
Twitter: http://twitter.com/aeciovc
Blog: http://aeciovc.wordpress.com
LinkedIn: http://br.linkedin.com/pub/a%C3%A9cio-costa/20/863/194

Renato Maia

unread,
Jul 16, 2010, 8:21:17 PM7/16/10
to lua...@googlegroups.com

On 16 Jul 2010, at 15:41, Aécio Costa wrote:

> para começar com Loop, alguém sabe onde tem um tutorial pra
> implementar??


Não sei se é o que procuras, mas veja:
http://loop.luaforge.net/manual/index.html

De qualquer forma, recomendo enfaticamente que se aprenda Lua antes.
Ler as partes I e II do livro do Roberto (www.lua.org/pil2) é o ideal.

Reply all
Reply to author
Forward
0 new messages