Object vs Class composition - PowerPoint PPT Presentation

1 / 15
About This Presentation
Title:

Object vs Class composition

Description:

Special interface between a class and its subclasses ... Acyclic graph = methods arranged in layers. Cycles = all methods form a group ... – PowerPoint PPT presentation

Number of Views:48
Avg rating:3.0/5.0
Slides: 16
Provided by: Imma6
Category:

less

Transcript and Presenter's Notes

Title: Object vs Class composition


1
Object vs Class composition
  • By Marine Ruhamanya

2
Disciplined Inheritance
  • Problems with implementation inheritance
  • Encapsulation
  • Fragile Base Class problem
  • However it is a powerful mechanism.
  • Several attempts to discipline the mechanism

3
The specialization interface
  • Special interface between a class and its
    subclasses
  • C, Java, C support the notion of protected
    features of a class

4
Typing the specialization interface
  • Overriding methods needs to be done carefully
  • Proposal (Lamping,1993)
  • Type system to improve control
  • Declare method dependencies
  • Acyclic graph gt methods arranged in layers
  • Cycles gt all methods form a group
  • Subclass has to override methods group by group

5
Behavioral specification
  • Semantic issues of implementation inheritance
  • mostly related with re-entrance caused by
    self-recursion
  • Proposal (Stata and Guttag, 1995)
  • View a class as a combined definitions of
    interacting parts objects
  • Division of labor or method groups
  • No direct access between divisions

6
Behavioral specification(2)
  • Use of specification techniques and the notion of
    behavioral subtyping
  • Stata-Guttag vs Lampig
  • Stata-Guttag split state and behavior into
    groups. Methods groups encapsulate part of the
    state
  • Lampig any dependency of methods on state
  • Tight semantic control leads to object
    composition.

7
Reuse contracts
  • Less restrictive forms of implementation
  • Proposal (Stayeart et al., 1996)
  • Annotated interface reuse contracts
  • Determine how reuse happens between classes and
    its subclasses
  • Specify structural aspects of a base class
  • Specify only the part of a call stucture
    subclasses can rely on.
  • New set of modification operators

8
Representation Invariants Methods Refinements
  • Proposal (Stephen, 1999)
  • Associate invariants to a class specification
    that refers to protected variables
  • Proposal (Stata, 1999)
  • Separate the notion of subtyping and subclassing
    to allow partial overriding
  • Supercalls are allowed if overriding method is a
    proper refinement of the base class method.

9
Disciplined inheritance to avoid the FBC problem
  • Proposal (Mikhajlov-Sekerinski, 1998)
  • Set of rules
  • Construction of subclasses based on superclass
    specification
  • Eliminate the introduction of new cyclic method
    dependencies
  • Superclasses instance variables are private and
    subclasses dont introduce new ones.
  • Very restrictive, but interesting formal proof

10
Creating subclasses without seeing the superclass
code
  • Proposal (Leavens et al., 2000)
  • Java Modeling Language defined
  • Focus on the inverse of FBC problem
  • Provide 3 parts to a class specification
  • 1st and 2nd public and protected parts
  • 3rd subclassing contract provide information
    accessed variables and methods call dependencies
  • Link to the FBC not further explored.

11
From Class to Object Composition
  • Object composition - simpler form of composition
  • Object send message to other object asking for
    support
  • Outer and inner objects, forwading
  • Differences to implementation inheritance
  • Outer object does not reimplement inner object
    functionality
  • Implicit self-recursion or possesion of common
    self

12
From Class to Object Composition
  • Implicit self-recursion or possession of
    common self
  • There is no common self in object composition
  • In implementation inheritance upcalls due to
    method invocation
  • Example ( page 135).
  • Advantage dynamic

13
Forwarding vs Delegation
  • Message passing
  • Delegation message-send is classified as either
    regular (forwarding) or self-recursive
    (delegation)
  • Example (page 136 137)
  • Message resending
  • Complexity exploses under delegation
  • Interaction diagram similar to that of
    implementation inheritance

14
Delegation Inheritance
  • Delegation powerful programming tool
  • System based on OC and delegation are highly
    dynamic.
  • Languages are called prototype-based languages
    e.g. Self.
  • Not yet mainstream
  • Delegation is behind in discipline and modularity
    while inheritance is behind in system dynamics
    and late compsition

15
End
Write a Comment
User Comments (0)
About PowerShow.com