O'Reilly logo

Lean Architecture for Agile Software Development by Gertrud Bjørnvig, James Coplien

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Appendix F. Account Example in Squeak

This is a fileout of Trygve Reenskaug's Squeak implementation of the BankTransfer example. The standard Squeak text format is somewhat unreadable, so the file has been hand edited to simplify reading. (Actual program statements are numbered, all other lines are comments.)

The appendix is broken up into sections that correspond to the views of the program supported.

A method in one object is triggered by a message that is sent from a method in the same or another object. The Squeak syntax is simple, if unusual. In each example below, a corresponding Java-like expression is added below it.

Assignment to a variable is done with :=

foo := 6.
foo = 6;

Comments are enclosed in double quotes: "This is a comment"

There are three kinds of messages: Unary, binary, and keyword. Unary messages are executed first, then binary, and finally keyword messages.

Unary message:

account balance
account.balance()

Binary message:

a + b

Here, a is an object, + is a message selector, b is an argument. In Java we would just say a+b.

Keyword message:

ctx transfer: 500 fromAccount: 1111 toAccount: 2222
ctx.transfer:fromAccount:toAccount:
(500, 1111, 2222).

Colon is a permissible character in message selectors (method names). A class is created by sending a message to its superclass:

Object subclass: #BB5Testing
    instanceVariableNames: ' '
    category: 'BB5Bank-Testing'

All methods return a value. The default is self if nothing else is specified:

^returnValue
return returnValue

Statements are ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required