[Newbies] System Browser: instance vs. class

lanas lanas at securenet.net
Sun Jan 31 22:31:09 UTC 2010


Hello all,

  I would like to know what is the practical difference between
instance and class in the System Browser.  Based on the Abstract
Factory example from Alpert's 'Desgin Patterns' book:

1) Not using class:

  Object subclass: #CarAssembler
	  instanceVariableNames: 'factory'

  factory: aCarFactory
	  factory := aCarFactory.

And in the workspace:

  assembler := CarAssembler new factory: RenaultFactory new.

  car := assembler assembleCar.

Works fine.


2) Using class:

The book example actually uses:

  Object subclass: #CarAssembler
	  instanceVariableNames: 'factory'

  CarAssembler class>> using aCarFactory

And then in the workspace:

  assembler := CarAssembler using: RenaultFactory new.

  car := assembler assembleCar.

That also works fine.

I see it as a semantic difference only.  There must be more than
that.  The class approach would nevertheless have an instance
variable of the name 'factory' in which the wished factory object
will be found. That variable is here initialized to a
RenaultFactory in both cases.  What are the pros and cons of
using or not using the class approach ?

Thanks,

Al


More information about the Beginners mailing list