µLua DS - Forum officiel | Official forum Index du Forum

µLua DS - Forum officiel | Official forum
Le bon endroit pour en savoir plus sur MicroLua et pour parler de vos projets ! | The right place to learn more about MicroLua and talk about your projects !

 FAQFAQ   RechercherRechercher   MembresMembres   GroupesGroupes   S’enregistrerS’enregistrer   ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

[LUA/lib] Lua Class System : Une Librairie POO pour Lua

 
Poster un nouveau sujet   Répondre au sujet    µLua DS - Forum officiel | Official forum Index du Forum -> Section française -> Coin du dév' -> Librairies
Sujet précédent :: Sujet suivant  
Auteur Message
Roland_Yonaba


Hors ligne

Inscrit le: 02 Sep 2011
Messages: 22

MessagePosté le: Ven 18 Mai 2012 - 19:18    Sujet du message: [LUA/lib] Lua Class System : Une Librairie POO pour Lua Répondre en citant

Bonsoir,


Lua Class System (LCS) est une toute nouvelle librairie qui nous aidera à déployer vos code sources en utilisant le style orienté object en Lua.
C'est une librairie qui met en avant sa simplicité (pour une prise en main très rapide), son extrême légèreté
Elle est conçue pour être intégrée à tout type de projet écrit en Lua, quelle que soit la plate-forme hôte, du fait de son niveau abstraction élevé.


LCS est la version évoluée d'une précédente librairie, nommée qOOP (Quick Object Oriented Programming for Lua). Bien que qOOP ait été appréciée à sa juste valeur, il existait certains aspects de cette librairie qui ne me plaisaient pas: de la redondance, un certain bug avec l'héritage, un code assez lourd. J'ai donc pris sur moi de refactoriser entièrement le code, pour produire quelque chose de beaucoup plus élégant, le plus léger possible et d'extrêmement rapide.


Lua Class System vous apporte les fonctionnalités suivantes:


  • Création de classes
  • Emulation  de classes finales et statiques
  • Instantiation d'object avec des constructeurs par défaut (new), et des constructeurs personnalisés (init)
  • Appel de méthodes définies dans des classes mères (super)
  • Fonctions d'introspection des classes et des objets (is_A, object:is_A)



Exemple d'emploi :




 
Citation:
 -- Chargement de la librairie dans la variable locale LCS
local LCS = require 'LCS'


-- Création d'une classe Person
local Person = LCS.class()


-- Ajout d'une méthode à la classe Personne
function Person:speak()
print('I am a Person!')
end


-- La classe Hero dérive de la classe Personne, et possède des attributs supplémentaires
local Hero = Person:extends {name = '', power = 0}
function Hero:init(name,power)
self.name = name
self.power = power
end


-- La classe Hero redéfinit une méthode de la classe mère, 
-- mais a toujours accès à la méthode originale dans la classe mère
function Hero:speak()
print('My name is '..self.name..', and I have a power of '..self.power)
end


local nobody = Person()
nobody:speak() --> I am a Person!


local kyle = Hero('Kyle',100)
kyle:speak() --> My name is Kyle, and I have a power of 100
kyle:super('speak') --> I am a Person!


-- Introspection
-- On vérifie que kyle est un Hero
print(kyle:is_A(Hero)) --> true


-- On vérifie que la classe Hero dérive de la classe Person
print(Hero:getClass() == Personne) --> true


-- On vérifie que kyle est un objet
print(LCS.is_A(kyle,'object') --> true


--On vérifie que Personne est une classe
print(LCS.is_A(Personne)) --> class







Nota: La documentation est fournie sur la page du projet (lien ci-dessous), ainsi qu'un fichier de tests que vous pourrez utiliser comme outil de prise en main rapide.
Si vous notez des bugs, erreurs, ou si vous avez tout simplement un commentaire, faites-le savoir en répondant à ce post, ou en me faisant parvenir un MP ou un mail.


Lien: Lua Class System
License: zLib


Revenir en haut
Publicité






MessagePosté le: Ven 18 Mai 2012 - 19:18    Sujet du message: Publicité

PublicitéSupprimer les publicités ?
Revenir en haut
ai@tar_95


Hors ligne

Inscrit le: 31 Jan 2011
Messages: 96
Localisation: dans un monde de 0 et de 1

MessagePosté le: Jeu 12 Juil 2012 - 13:13    Sujet du message: [LUA/lib] Lua Class System : Une Librairie POO pour Lua Répondre en citant

ou peut-on trouver le fichier LCS.lua ?

Je l'ai cherché mais je ne l'ai pas trouvé Sad


Revenir en haut
thermo_nono
Modérateur

Hors ligne

Inscrit le: 31 Déc 2008
Messages: 2 415
Localisation: La Géhenne

MessagePosté le: Jeu 12 Juil 2012 - 13:58    Sujet du message: [LUA/lib] Lua Class System : Une Librairie POO pour Lua Répondre en citant

il est ici. 
   Wink
_________________
“Qui reçoit une idée de moi reçoit de la connaissance sans diminuer la mienne, comme celui qui allume sa chandelle à la mienne reçoit la lumière sans me plonger dans l’obscurité.” - Thomas Jefferson


Revenir en haut
Visiter le site web du posteur MSN
ai@tar_95


Hors ligne

Inscrit le: 31 Jan 2011
Messages: 96
Localisation: dans un monde de 0 et de 1

MessagePosté le: Jeu 12 Juil 2012 - 14:09    Sujet du message: [LUA/lib] Lua Class System : Une Librairie POO pour Lua Répondre en citant

merci, je l'avais vu, mais je l'ai testé, et il me dit qu'il y a des erreurs quand je lance un script de test l'utilisant, donc je me suis dit que ce n'était pas le bon.

Quelqu'un pourrait-il m'aider ?


Revenir en haut
Roland_Yonaba


Hors ligne

Inscrit le: 02 Sep 2011
Messages: 22

MessagePosté le: Sam 1 Sep 2012 - 13:20    Sujet du message: [LUA/lib] Lua Class System : Une Librairie POO pour Lua Répondre en citant

ai@tar_95 a écrit:
merci, je l'avais vu, mais je l'ai testé, et il me dit qu'il y a des erreurs quand je lance un script de test l'utilisant, donc je me suis dit que ce n'était pas le bon.

Quelqu'un pourrait-il m'aider ?

Salut.
je passe très rarement par ici, je n'ai donc pas vu ce post.
Le mieux aurait été de m'envoyer un MP, ou un mail.
Sinon, je ne peux préciser quelle est l'erreur, il faudrait que tu postes ton code.


Revenir en haut
Lolman
Modérateur

Hors ligne

Inscrit le: 02 Aoû 2011
Messages: 811

MessagePosté le: Sam 1 Sep 2012 - 22:21    Sujet du message: [LUA/lib] Lua Class System : Une Librairie POO pour Lua Répondre en citant

Salut. Pour ta propre curiosité, et peut-être pour te donner des idées, tu connais le système de types d'Haskell ?
C'est différent de l'orienté objet, mais plus puissant. Il n'y a pas d'héritage, mais je dirais que c'est soit inutile, soit remplacé par de la composition ou des constructeurs alternatifs.
"data Bool = True | False" déclare le type Bool, qui a pour constructeurs "True" et "False". Int est défini plus ou moins comme ça "data Int = -2147483648 | -2147483647 | ... | -1 | 0 | 1 | 2 | ... | 2147483647", donc "1" est un constructeur (en Haskell, tu n'as que des types et des fonctions, dont les constructeurs, rien d'autre). Tu as le très pratique "data Maybe a = Just a | Nothing".
Plus d'infos sur Haskell.
EDIT : J'ai supprimé les messages HS sur Haskell de ce sujet. Celui-ci exprime juste une comparaison entre les types d'Haskell et de Lua, et n'est donc pas hors-sujet/
_________________
http://bit.ly/u5x6DZ Fangame et suite du célèbre Metroid Prime 3.
Corvées : header fofo, Homebreware, µPy, new µLib, modes d'emploi, MLS sur DeSmuME, rotation écran, tuto wiki, domination de la Galak-sy.


Dernière édition par Lolman le Lun 3 Sep 2012 - 10:51; édité 2 fois
Revenir en haut
Visiter le site web du posteur
Lolman
Modérateur

Hors ligne

Inscrit le: 02 Aoû 2011
Messages: 811

MessagePosté le: Dim 2 Sep 2012 - 18:36    Sujet du message: [LUA/lib] Lua Class System : Une Librairie POO pour Lua Répondre en citant

Dans l'exemple :
Code:
local kyle = Hero('Kyle',100)
kyle:speak() --> My name is Kyle, and I have a power of 100
kyle:super('speak') --> I am a Person!

pourquoi ne pas faire
Code:
local kyle = Hero('Kyle',100)
kyle:speak() --> My name is Kyle, and I have a power of 100
kyle:super():speak() --> I am a Person!

_________________
http://bit.ly/u5x6DZ Fangame et suite du célèbre Metroid Prime 3.
Corvées : header fofo, Homebreware, µPy, new µLib, modes d'emploi, MLS sur DeSmuME, rotation écran, tuto wiki, domination de la Galak-sy.


Dernière édition par Lolman le Lun 3 Sep 2012 - 10:48; édité 1 fois
Revenir en haut
Visiter le site web du posteur
Contenu Sponsorisé






MessagePosté le: Aujourd’hui à 03:48    Sujet du message: [LUA/lib] Lua Class System : Une Librairie POO pour Lua

Revenir en haut
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    µLua DS - Forum officiel | Official forum Index du Forum -> Section française -> Coin du dév' -> Librairies Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1

 
Sauter vers:  

Index | Creer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com