RSS feed [root] /weblog /design



title search:


Tue Jun 21 00:19:50 GMT 2022

High level software design discussion

A nice table:
Do Don't
1. Focus on interfaces. 2. Be worried about the implementation.
3. Mention semantic contract using interfaces. 4. Let subtypes break this semantic contract of their parent types.
5. Service decoupling using interfaces. 6. Be coupled with specific concrete implementation.
7. Family extension using interfaces. 8. Break the family relationship using concrete implementation.
9. Establish a family rule by abstract classes. 10. Impose your own rule through concrete classes.
11. Let interfaces answer all "what" about the system. 12. Forget to mention "how" are you answering all "what" from interfaces.
Also a good introduction of Strategy pattern[..]/03/28/testing-java-object-oriented.html How to determine the levels of abstraction -[..]w-to-determine-the-levels-of-abstraction Simple and clear, good design -> Correct, clear, easy to change -[..]rrectness-clarity-and-changeability.html Data Oriented Programming in Java -

(google search) (amazon search)
download zip of files only