The Artima Developer Community

Design Corner
Java News

Jini Corner
Design Corner
Web Services
Java Corner

Media Kit
Write for Us
Privacy Policy
About Artima
RSS Feeds
Miscellaneous Design Resources:
Object Design - a work-in-progress about object-oriented design with Java
Recommended Design Books - descriptions of books related to Java and object-oriented design
Design Forum - A place to discuss topics related to software design, including object-oriented design, system architecture design, and API design.
Object Oriented Design Resources - a set of links to more information about Java design, object oriented design, and patterns
Object Design Workshop - three day in-house OO/Java design workshop

Interviews on Design:
Perfection and Simplicity - the myth of "the perfect design" and ways to achieve design simplicity
Taste and Aesthetics - the role of taste in design and the importance of designing with the user in mind
Designing Distributed Systems - designing for failure, using transactions and idempotency, and avoiding state
A Conversation with Josh Bloch - The author of Effective Java talks about design

Design Techniques Articles:
Table of Contents - a list of all articles with detailed descriptions
Introduction to "Design Techniques" - the role of design within the software development process, and the various and competing goals of a "good" software design
Object Initialization in Java - the process of object initialization in Java programs
Designing Object Initialization - how to design initializers and constructors to facilitate proper object initialization
Designing Fields and Methods - how some fundamental software design techniques, like avoiding special data values and minimizing method coupling, apply to Java
What's a Method To Do? - how to maximize method cohesion while avoiding method explosion
Object Finalization and Cleanup - design guidelines that pertain to the end of an object's life
The Hotspot Virtual Machine - discusses the hotspot virtual machine and how this forthcoming technology impacts Java program design
Exceptions in Java - an in-depth account of exceptions in the Java language and virtual machine
Designing with Exceptions - design guidelines concerning when and how to use exceptions
Designing for Thread Safety - design guidelines concerning when and how to make objects thread-safe
The Event Generator Idiom - discusses how and when to make a Java class observable
The Canonical Object Idiom - proposes and idiom that defines a baseline set of functionality for objects
Inheritance versus Composition - discusses how to choose between inheritance and composition
Designing with Interfaces - discusses how to use Java's interface
Designing with Dynamic Extension - discusses how to use forName() and class loaders in designs
Designing with Runtime Class Information - discusses how to use all the information about an object's class that is available at runtime
Designing with Static Members - discusses how to use static fields and methods
Farewell to 'Design Techniques' - gives a brief history of the column with relevant links

Legacy Design Forum Topics:
Table of Contents - links to all forum topics
Flexibility as a Design Goal - a look at different people's ideas and opinions on software design and the overall software development process
The Set/Get Question - discussing the merits of methods that give the clients a view of an object's attributes versus methods that perform services
Designing Fields and Methods - discussing the nuts and bolts of designing fields and methods
Maximizing Method Cohesion - discussing how to chop up responsibilities into methods
Finalization and Cleanup - discussing the end of object lives
The Hotspot Virtual Machine - discussing the Hotspot Virtual Machine and its impact on Java program design
Designing With Exceptions - discussing when and how to use exceptions
Designing For Thread Safety - discussing when and how to make classes thread-safe
When To Bean? - discussing when make classes into JavaBeans
To Bean or Not to Bean? - text of an e-mail debate about when to beanify Java objects
Canonical Object Idiom - discussing a base level functionality for classes
Event Generator Idiom - discussing an idiom that shows how to use nofication in Java program designs
Composition vs. Inheritance - discussion about when to choose composition vs. inheritance in designs
Designing with Interfaces - discussing when to use interfaces
Designing with Dynamic Extension - discussing when to use dynamic extension in Java programs Designing with Runtime Class Information - discussing when to use runtime class information in Java programs
Designing with Static Members - discussing when use static members in Java programs


Sponsored Links

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use