stoop ed-dual interface

9
Stéphane Ducasse 1 Stéphane Ducasse [email protected] http://stephane.ducasse.fr ee.fr/ Design Points - Dual Interfaces Stéphane Ducasse --- 2005

Upload: the-world-of-smalltalk

Post on 27-Nov-2014

344 views

Category:

Technology


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Stoop ed-dual interface

Stéphane Ducasse 1

Stéphane [email protected]://stephane.ducasse.free.fr/

Design Points - Dual Interfaces

Stéphane Ducasse --- 2005

Page 2: Stoop ed-dual interface

S.Ducasse 2

Clients?• Clients• Subclasses

Page 3: Stoop ed-dual interface

S.Ducasse 3

What are the consequences?

A { private x ;void foo(){ ... x ...}}

Page 4: Stoop ed-dual interface

S.Ducasse 4

What can I do as a subclass?

I cannot access xI cannot replace xI cannot extend!

Page 5: Stoop ed-dual interface

S.Ducasse 5

The idiom is

Fields are private AND you provide protected accessors

OR

Fields are protected

Page 6: Stoop ed-dual interface

S.Ducasse 6

Benefits

Your clients cannot access your fieldsBut your subclasses are empowered

Page 7: Stoop ed-dual interface

S.Ducasse 7

Two users

Page 8: Stoop ed-dual interface

S.Ducasse 8

Two Users

Page 9: Stoop ed-dual interface

S.Ducasse 9

Clients

A class has always two clients:its clients and its extenders