So-o définit une couche fonctionnelle qui ajoute un modèle de programmation orientée objet à un langage de programmation structurée. Inspiré par Smalltalk, So-o est complet, simple et léger, facile à comprendre.
So-o a 3 fonctions : defclass
qui définit une nouvelle classe, sendmsg
qui sert systématiquement à envoyer un message à une classe ou à une instance, et supersend
qui exécute une méthode héritée d'une superclasse. Simply object-oriented!
So-o propose une implémentation type en plusieurs langages. Le code en PHP a moins de 1000 lignes. Le code en C tient en quelque 1500 lignes. Le code en JavaScript fait à peine 700 lignes.
Définit la classe Hello qui hérite de la classe par défaut Object. Son numéro de révision est 1. Elle n'ajoute pas de propriétés de classe ou d'instance. Elle n'ajoute pas de méthodes de classe. Elle ajoute une méthode d'instance appelée hello.
La fonction i_hello
définie dans l'espace de nommage Hello implémente la méthode d'instance appelée hello. $self
est l'instance qui a reçu le message hello.
Charge le code de la classe Hello. Envoie le message new à la classe Hello. La méthode new est implémentée par la classe Object. Elle retourne une nouvelle instance de la classe. Envoie le message hello à l'instance $hello
.
Un simple main pour illustrer l'utilisation de la classe Hello :
Compilation du code avec la librairie libso-o.a et exécution :
Quelques lignes de code pour illustrer l'utilisation de la classe Hello :
Exécution avec Node.js :
Visitez so-o.org.
Commentaires