AntonioGanci

Il blog di Antonio Ganci
posts - 201, comments - 420, trackbacks - 31

Class Oriented e Object Oriented

Il primo linguaggio ad oggetti è stato Smalltalk aveva alcune caratteristiche che quasi nessun linguaggio moderno possiede ancora.

Un'importante differenza è che la classe è un oggetto. Infatti per creare una nuova classe non ho un meccanismo speciale come in C#, ma semplicemento chiamo un metodo di un oggetto.

Esempio supponiamo di voler creare la classe Dog:

Object subclass: #Dog
instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''
category: 'PBE'

In questo caso viene mandato il messaggio subclass (analogo alla chiamata di un metodo) all'oggetto Object. Analogamente se voglio creare un oggetto di tipo Dog manderò il messaggio new all'oggetto classe Dog.

Anche in Ruby le classi sono oggetti. Quindi il linguaggio C# è un linguaggio Class Oriented proprio per questa limitazione.

Il video Ruby for .NET developers spiega bene queste differenze prendendo come linguaggio di riferimento Ruby.

Print | posted on sabato 24 luglio 2010 12:22 |

Feedback

Gravatar

# re: Class Oriented e Object Oriented

Penso che in Smalltalk, questa impostazione sia solo una conseguenza del suo principio ispiratore, la semplicità e, quindi, l'omogeneità (Ruby non è né semplice, né omogeneo)

Non credo che essere Object Oriented, anziché Class Oriented, di per sé, abbia molto valore. Le differenze sostanziali non sono così grandi (alla fine puoi anche pensare a new come se fosse un messaggio mandato alla classe).
25/07/2010 01:19 | Riccardo
Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET