Interface Oriented Design
Interface-Oriented Design explores how you can develop software with interfaces that interact with each other. We’ll look at techniques for breaking down solutions into these interacting interfaces and then for determining appropriate implementations for these interfaces to create well-structured programs. We have plenty of examples that will show you ways to create effective designs composed of interfaces to objects, components, and services. And we’ll even have some fun along the way.
You’ve probably learned about (and experienced) software development using object-oriented design. Interface-oriented design concentrates on the interfaces of modules, which may or may not be implemented with object-oriented languages. Designs that emphasize interfaces are loosely coupled—and that’s a good thing. If you have only an interface to which to code, you cannot write code dependent on an implementation, which helps keep us honest.
Distributed computing, such as service-oriented architectures, places a particular emphasis on interfaces. The interfaces may be procedure oriented (such as Remote Procedure Calls) or document oriented (such as web services). We’ll explore the transparency and loose coupling traits that are key to distributed interfaces to help you build better distributed systems.
Inheritance is often a tricky technique to get correct—it is often one of the most abused features in object-oriented languages. We’ll look at designs that employ inheritance versus ones that emphasize interfaces to demonstrate the trade-offs between the two.
This ongoing emphasis on interfaces may seem a bit extreme. But by looking at one extreme, you’ll start to see a different viewpoint that can give you fresh insights into your current approach to software development.
Download Link
All rights reserved. All other trademarks appearing on on this site are the property of their respective owners. We don't store any files on this server, we just index the link from the other website.