OBJECT-ORIENTED PROGRAMMING, SYSTEMS, LANGUAGES and APPLICATIONS
 
 
Program
 


Program (2mb PDF)

Explore
  Invited Speakers
  Onward!
  Panels
  Workshops
Discover
  Research Papers
  Student Research Comp.
  Posters
  Doctoral Symposium
  Educators' Symposium
  Wiki Symposium
  Dynamic Lang. Symp.
Understand
  Tutorials
  Essays
  Practitioner Reports
  Demonstrations
Create
  DesignFest
  Lightning Talks
  FlashBoF
  Instant Arts School Exp.
 
Other Events
 
Resort Map (364kb PDF)
 
Resort Map (JPG)

 

 
Basket
 

view, help

"Effective Interface Design"

 

 
Page
 

Printer-friendly

 
 
  > Tutorials > All Tutorials

 : Monday Morning Tutorials (8:30 - 12:00) : Monday : Programming Techniques

Effective Interface Design

Sunrise
Monday, 8:30, half day

 


 
7·8·9·10·11·12·13·14·15·16·17·18·19·20·21

Kevlin Henney, Curbralan Limited

Tutorial number: 25

Seven Recommendations for Improving the Design of Interfaces in Code

Much is made of the pure interface mechanism found in Java, C#, IDLs, and other languages, but this enthusiasm is often not accompanied with advice on effective use. Interfaces are often sold short as a poor relative of abstract classes. How can developers design interfaces that are stable, sufficient, extensible, and sensitive to their context of use, such as callbacks or multithreading?

This talk selects seven recommendations that support effective interface design, whether the interfaces in question are object oriented, procedural, purely abstract, or simply the publicly available methods on a class. The recommendations are drawn from the thirteen recommendations of the Programmer's Dozen, presented at two previous OOPSLA conferences. C, C++, C#, Java, CORBA IDL, and UML are used to illustrate various examples, counterexamples, and principles.

Intermediate: This tutorial is targeted at people who write code for a living, typically using a curly-bracket language (C++, C#, Java, etc.) and are looking for some extra advice on how to partition their code with stable and intentional interfaces.

Kevlin Henney, Curbralan Limited:  Kevlin Henney is an independent consultant and trainer based in the UK. The focus of his work is in programming languages, OO, UML, agile development, patterns, and software architecture. At various times he has been a regular and irregular columnist for C/C++ Users Journal (online), Application Development Advisor (UK), JavaSpektrum (Germany), Java Report, and C++ Report. He is also on committees and advisory boards for various conferences, language standards, and other software-related organizations (always keeping in mind that "a committee is a cul-de-sac down which ideas are lured and then quietly strangled"...), and is a popular speaker at conferences in North America and Europe.

 
.