Comprehensive Look at Java Framework Development
Clear exposition of key concepts, good process exploration, effective examples and comparison, easy to read.
The distinction between libraries and frameworks is not always clear, though most authors will agree that a framework typically controls processing and tends to support modification by extension or filling-in open details to complete functionality. In the world of object-oriented development, reusability is a key strength, effectively exploited by well-designed frameworks. This books is about just that, the effective development of frameworks. It addresses this by presenting key considerations, processes and patterns, as well as useful examples and important concepts that lead developers to pragmatic solutions. Almost any Java developer can benefit from a good understanding of these principles and ideas.
Aside from a little introductory and acknowledgment information at the front, the book tackles its subject through eight chapters. Chapter 1 explores framework concepts, characteristics, considerations, modeling and organization. The arguments are compelling and well supported. Chapter 2 looks and using abstract classes and interfaces, with supporting evidence taken from the JDK. The chapter closes with a quick look at the process of framework development. Chapter 3 looks at design patterns like the factory, adapters, model/view, and several others. Chapter 4 looks at what it means to develop JavaBean components, with enough practical information to ensure you can put this to work by the end of the chapter.
Chapter 5 takes a deeper look at existing frameworks, with a focus on the Java Foundation Classes (Swing) and the InfoBus specification (for communicating between JavaBeans). The lessons are valuable and helpful. Chapter 6 looks at composite foundation architectures, a methodology for developing frameworks, components and subsystems that are part of a larger, more complex system. This chapter alone is a great investment. Chapter 7 covers application architectures, like data access models, front-end design models, business objects and distributed components. Chapter 8 closes the book with enterprise frameworks, like EJB (Enterprise JavaBeans) and CORBA.
If you’re responsible for architectural decisions in your development effort, you can only gain from the information in this book. Even sophisticated architects will get something useful out of this book. The book makes good use of UML and engages the reader by looking at well know existing systems to support its most important points. The whole thing pulls together information you may well be familiar with at some level, but ties it into a process that can only enhance your approach to Java system design. Recommended reading.