You can edit almost every page by Creating an account. Otherwise, see the FAQ.

So-o - Simply object-oriented

De EverybodyWiki Bios & Wiki
Aller à :navigation, rechercher



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, fruit d'un longue pratique d'Objective C et de différents dialectes du Lisp, So-o est complet, simple et léger, facile à comprendre. Les objets ne communiquent entre eux que par l'envoi de messages. Les classes sont des objets qui ont l'aptitude de fabriquer d'autres objets. Les messages sont interprétés dynamiquement.

So-o a été inventé par Eric Companie qui en a réalisé la première implémentation en PHP.

So-o - Simply object-oriented

Principes[modifier]

  • Tout objet est une instance d'une classe.
  • Toute classe a une superclasse avec la classe Object à la racine de l'arbre.
  • Tout se passe entre les classes et les objets par l'envoi de messages.
  • La recherche d'une méthode remonte l'arbre d'héritage.
  • Une classe se comporte comme un objet.
  • Tout n'est pas nécessairement orienté objet.

Implémentation[modifier]

So-o s'intègre parfaitement dans tout langage de programmation et laisse le concepteur et le développeur passer librement entre une approche fonctionnelle ou orientée objet. Le modèle propose une implémentation type pour plusieurs langages.

PHP[modifier]

Le code de So-o en PHP a moins de 1000 lignes. Il définit 3 fonctions : defclass qui définit une nouvelle classe, sendmsg qui sert systématiquement à envoyer un message à une classe ou à une instance, supersend qui exécute une méthode héritée d'une superclasse. Simply object-oriented !

Exemple[modifier]

namespace Hello;

require_once 'So-o.php';

defclass('Hello', null, 1, null, null, null, array('hello'));

function i_hello($self) {
    echo 'Hello from So-o!', PHP_EOL;

    return $self;
}
$ php -a
php > require_once 'Hello.php';
php > $hello=sendmsg($Hello, 'new');
php > sendmsg($hello, 'hello');
Hello from So-o!

Lire le manuel PHP

Erreur Lua dans Module:Catégorisation_badges à la ligne 170 : attempt to index field 'wikibase' (a nil value).Erreur Lua dans Module:Suivi_des_biographies à la ligne 189 : attempt to index field 'wikibase' (a nil value).

Cet Article wiki "So-o - Simply object-oriented" est issu de Wikipedia. La liste de ses auteurs peut être visible dans ses historiques.