Hello everybody,
I am looking for some clarifications/definitions regarding some special concepts for a better OOP design..
I already have some idea for some of them, however I would like to hear what more experienced programmer have to say. :D
So lets start...

Could u provide a short definition for...?
When should sbdy use...?
How can sbdy recognize...?
Which are the prerequisites for using...?
Are there any specific implementation issues concerning..?
Could u provide a small example where a preexisting design improves after using ...?
[LIST=1]
[*].. a Composite pattern
[*].. a Proxy pattern
[*].. a Visitor pattern
//---------------------------/
[*].. an Agent class
[*].. a Wrapper class
[*].. a Parser class
[/LIST]

Finally, is there a difference between the so called "Sequencer classes" and iterator classes or is it just a naming issue?

Thanks everybody in advance.

Recommended Answers

All 6 Replies

For those that might wonder... :D :D :D
Of course I have already googled :cool:

The thing is I want to have an insight to examples from long-experienced c++ programmers.

I am not sure this is the correct section for this thread, since OO concept is independent of langauges.

This aside, if you have not read the book "Design Patterns - Elements of Reusable Objected Oriented Software" by the gang of four, I would recommend you to read it first.

Hi Deniz and thanks for the post.

However allow me to disagree to:

I am not sure this is the correct section for this thread, since OO concept is independent of langauges.

I think OOP is language dependent since for example C++ is an object oriented language while C is not. Furthermore, Java for example is also OO but the implementation differs from the c++ case. Nevertheless I am going to post my questions in the "Computer Science and Software Design" section too.

Concerning:

This aside, if you have not read the book "Design Patterns - Elements of Reusable Objected Oriented Software" by the gang of four, I would recommend you to read it first.

I fully agree 100% and the exact book I have right now in my hands.....:D
However the implementation examples are not 100% complete, and the book itself is rather old (published in 1995). These 2 things combined with the fact that most internet results concern the examples of the same book, force me to seek real problem examples from more experienced programmers of the forum.

Any idea with the other issues not concerning the patterns:

Agent / Wrapper / Parser / Sequencer 
 classes
These might be sth easy for native english speakers, but since I am such one I need your help out there :D

P.S. I prefer always learning sources where the examples are complete, because I always try to do them by myself and check my results with theirs after I am finished.

Hi Deniz and thanks for the post.

However allow me to disagree to:

I think OOP is language dependent since for example C++ is an object oriented language while C is not. Furthermore, Java for example is also OO but the implementation differs from the c++ case. Nevertheless I am going to post my questions in the "Computer Science and Software Design" section too.

It's ok to disagree with me. However, I would still say that OO concepts such as data encapsulation, inheritance, polymorphism, abstraction, etc are independent of programming languages. Languages implement concepts, but concepts exist before the implementation.

That aside, I believe the definition and when to use the patterns are well described in the design pattern book. I believed they gave examples too (can't really remember, its been so many years since I read that book). Actually, I would say these patterns though well-documented, should only used for references but not as constraints to creativity. Afterall, developers have been using these patterns before they are documented by the gang of four.

Any idea with the other issues not concerning the patterns:

Agent / Wrapper / Parser / Sequencer 
 classes
These might be sth easy for native english speakers, but since I am such one I need your help out there :D

P.S. I prefer always learning sources where the examples are complete, because I always try to do them by myself and check my results with theirs after I am finished.

If you are asking for examples, I can try provide a few. One example of wrapper classes implementation would be the Microsoft Foundation Class (MFC) libraries. It basically consists of a library of classes, most of which are wrapper classes that wrap around the old Win32 API.

As for parser, it is typically used in compilers to perform lexical analysis. If you are familiar with compiler design you would know about parser. But in general, parser can also be used in normal application that needs to interprete a string of text, or commands, or scripts.

I am not quite sure in what context this "Agent" is. Is it the intelligent agent used in AI for human preference tracking?

As for sequencer, I do not know whether you are refering to iterator. If so, then it is kinda commonly used in programming.

First of all Deniz thanks again for answering.

You covered most of my questions theoretically :cool:

However I would like some small code examples on the

# .. Proxy pattern
# .. Visitor pattern

if anybody could provide such.

Concerning now:

...I am not quite sure in what context this "Agent" is. Is it the intelligent agent used in AI for human preference tracking?....

No I meant "Agent classes" as general terms in relation to design patterns. If anybody has an idea please give me an insight.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.