Interface Oriented Design

ebook: Interface Oriented Design


Publisher: Pragmatic BookshelfPublication: 2006, EnglishISBN: 9780976694052Pages: 240

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.

This book is aimed at developers who have some experience with programming and who have been exposed to object-oriented design. Even if you are heavy into object orientation, you might find the interfaceoriented approach helps you gain some insight into different ways of approaching a design. Understanding interfaces will help you transition to designing Service-Oriented Architectures
 




Members who read this also like

3 RATES
Practices of an Agile Developer: Working in the Real World (Pragmatic Programmers)
Practices of an Agile Developer: Working in the Real World (Pragmatic Programmers)
Pragmatic Bookshelf
2005, English
0 RATES
Web Design for Developers: A Programmer's Guide to Design Tools and Techniques
Web Design for Developers: A Programmer's Guide to Design Tools and Techniques
Pragmatic Bookshelf
2009, English
0 RATES
Effective UI: The Art of Building Great User Experience in Software
Effective UI: The Art of Building Great User Experience in Software
O'Reilly
2010, English
0 RATES
97 Things Every Programmer Should Know: Collective Wisdom from the Experts
97 Things Every Programmer Should Know: Collective Wisdom from the Experts
O'Reilly
2010, English