CSE687 - Object Oriented Design
Lecture #13 - Interface Segregation Principle
Revised: 27 February 2008
Web Resources:
Stroustrup's Home Page,
Assoc. of C/C++ Users,
C++ at Microsoft,
Code Project,
Sells Brothers,
Guru of the Week,
C/C++ User's Journal,
devCentral,
Dr. Dobb's Journal,
Boost Library,
techNetCast
Content:
This lecture covers Interfaces and the Interface Segregation Principle.
-
Syllabus
Describes topics to be covered,
reading material for you to digest before coming to class, and due dates
for the assigned projects.
-
Project #2
Graph data type.
-
XMLParsing or XMLTran
Two modules that do basic XML handling - building XML strings and pulling them apart. They do not understand
XML namespaces or schemas. Either on will work for the parsing part of Project #2.
-
Project #2 Help
-
The Dependency Inversion Principle
Components should depend on abstractions, not other components.
-
Programming to Interfaces Presentation
Discusses interfaces, layers, factories, and breaking design, compile, and static link dependencies.
-
Object Factory Project
This project implements a factory that allows clients to use derived classes but only bind to their
abstractions. It also demonstrates the use of products with multiple interfaces.
-
Programming to Interface Project
This project implements a template-based "pluggable object factory" and shows how to access
members of a hierarchy through an interface.
-
Dynamic Link Library Project
This project demonstrates that compile and static link dependencies can be broken by programming
to interfaces and using object factories.
-
Run-Time Type Indentification Presentation
RTTI is, perhaps, the antithesis of the Open/Closed Principle. Paradoxically, I used it building the trace class.
-
Interface Segregation Principle
Discusses why you may need to provide more than one interface for a component.
-
Exceptions Presentation
-
Basic Exceptions Demo
-
Standard Exceptions Demo
-
Exception Performance Demo
-
Design Presentation
Summarizes design issues for modules and classes.
-
Design Rules
Design rules and idioms that transcend Object Oriented Design.
-
Lecture #13 folder
Contains a page of links to
presentations and code discussed in this class. The Lecture folders will occasionally
hold physical files of interest as well. Usually, however, all the materials
of interest to the class are in the presentations
and code folders. The contents of these folders will grow
as you progress through the course.