Rethink design patterns, Generics patterns, and AO design patterns
We need to re-visit, re-think, and re-learn design patterns. As a matter of fact, because “design patterns” are actually only “object oriented design patterns”, so, we need expand it with “generics design patterns”. Further, we need to expand design patterns with “aspect oriented design patterns” as well.
OO, Generics, and AO are all “design patterns”. By “design patterns” I mean the “immediately-close-to-coding design level”. For modern higher level languages (Java, C#, VB.net, even modern C++), for all practical purposes, this level is inseparable from “coding level” itself.
For AO, because of the difficulty of "emit", the basic goal is to recognize aspects and implement those aspects with strict (mechanic) conventions.
For Generics, the goal is to know typical generic usage patterns and the variations of design patterns when they are used with generics.
Because they are low level skills, they must be the second nature of any good programmers. Also, they must have “idioms” with a specific platform; however, the “sense” of it is transferable among modern higher level languages (Java, C#, VB.net, and C++ to a certain degree).
This is the reason that I have this blog:
http://survic.blogspot.com/2006/08/think-in-generics-generics-patterns.html
You may say, give me the “source” -- OK, here is a more definitive source:
http://www.amazon.com/Modern-C++-Design-Programming-Patterns/dp/0201704315/sr=1-1/qid=1157085254/ref=pd_bbs_1/104-9385502-1141540?ie=UTF8&s=books
You are right, the above link is about C++. I understand that C# (.net) is different from C++ (unmanaged), and C# (.net) generics is not “template meta-programming”; however, the idea is the same: we need to think in OO design patterns, generics, and aspects (which is indeed a form of meta-programming).
1 Comments:
In case you ask, what are those three things relate to the “three key features” and “eight techniques”. Then, I would say, no direct relationship at all. Those three “design patterns” are simply skills a little higher level than syntactic knowledge of languages. As for “three”, it is just a coincidence with the “three key features”.
What am I doing? – Why I am so pedantic or academic? -- I am writing a big book ;-) – Man, this blog is my "high level notes" -- I need to clear my mind, just for my self.
Post a Comment
Subscribe to Post Comments [Atom]
<< Home