want suggestion in learing design pattern/OOA&D

Started by
1 comment, last by Neon2302 16 years, 10 months ago
hi, anyone I'm ...., nothing, but only one normal life programmer. in my past I never concern about OOA&D or design pattern, even I using java as my programming language. now a day, I quite concern that even small program by using design pattern will help me a lot in long term. After reading the book I understand the concept (such as command pattern, singleton pattern, state pattern) but the problem is most of the time (nearly all the time) I can't fit my software requirement (broken to just smallest requirement as possible) to the suitable pattern (I'm not sure about this but I think they can fit one but I can't find). I know that this kind of knowledge require experience more than any kind of book. but how??? I don't have anyone for me to consult with or asking for recommendation on my design. anyone can help me to suggest, what should I do to become expert in this subject. Thank you and Best Regards Chet Chetchaiyan normal life programmer
Advertisement
If I understand your broken English correctly, you read the famous "Design Patterns" by Gamma, Helm, Johnson & Vlissides, but you don't find the described design patterns useful for your designs, so you doubt your skills at object oriented software design.
There can be two main reasons:

1) The design patterns you learnt are really not usefully applicable to your projects.
The GoF book lists a selection of design patterns (other designs can be equally good); some of them are motivated by specific C++ or Smalltalk features and are irrelevant simply because you use Java; and the described design patterns are simple and pure specimens selected from a continuum of good designs.
The didactic style of "Design Patterns" cannot emphasize how the listed creational patterns must be necessarily combined in comprehensive designs of object lifecycle, or how defining and implementing interfaces "buys" arbitrary and synergistic composition of many structural patterns.

2) You don't really understand specific design patterns, possibly because you are unwilling to bend them to meet reality, and/or you analyze your requirements in a way that doesn't allow object oriented design.
Breaking requirements into the smallest possible pieces isn't necessarily useful; you should design by inventing classes, deciding how they should interact and behave, and how they are expected to collectively implement the requirements.
During design and coding phases, you can decide at any time that you need some design patterns: you can add a visitor because a complex data structure needs to be processed in full; you can decide that some classes are similar enough to get a common interface and some of composite, null object, proxy, etc.; you can decide that there are complex subsystems that can be kept in line with a façade or bridge; and countless other ways to improve your design (not to implement requirements) through the introduction and modification of design patterns.

Omae Wa Mou Shindeiru

Thank you for you suggestion, and also apologizes for my bad english. As you said I had read the wrong book and now I'm reading head-first-design pattern and it quite work for me. I really thankful for your last suggestion about implementing design pattern. Even it's a short sentence but it's really meaningful to me.

Best Regards
Chet Chetchaiyan

This topic is closed to new replies.

Advertisement