As you see,<<Design Patterns>>---Elements of Reusable Object-Oriented Software,is one of the computer books witch have the great force on the COmputer Science. So I decide to read the English edition of this book,Of course before this ,I have taken a <<Professional English>> course.Now I will show you the 23 patterns that reffered to in these book time after time.
Abstract Factory:Provide an interface for creating families of related or dependent objects without specifying their concrete classes.
Adapter:Convert the interface of a class into another interface clients expect.Adapter lets classes work together that couldn't otherwise because of incompatible interfaces.
Bridge:Decouple an abstraction from its implementation so that the two can vary independently.
Builder:Separate the construction of a complex object from its representation so that the same construction process can create different representations.
Chain of Responsibility:Avoid coupling the sender of a request to its receiver by giving more than one object a chance to handle the request.Chain the receiving objects and pass the request along the chain until an object handles it.
Command:Encapsulate a request as an object ,thereby letting you parameterize clients with different requests ,queue or log requests , and support undoable operations.
Composite:Compose objects into tree structures to represent part-whole hiberarchies.Composite lets clients treat individual objects and compositions of objects uniformly.
Decorator :Attach additional responsibilities to an object dynamically.Decorators provide a flexible alternative to subclassing for extending functionality.
Facade:Provide a unified interface to a set of interfaces in a subsystem.Facade defineds a higher-level interface that makes the subsystem easier to use.
Factory Method.Define an interface for creating an object,but let subclasses decide which class to instantiate.Factory Method lets a class defer instantiation to subclasses.
Flyweight:Use sharing to support large numbers of fine-grained objects efficiently.
Interpreter:Given a language,define a represention for its grammer along with an interpreter that uses the representation to interpret sentences in the language.
Iterator:Provide a way to access the elements fo an aggregate object sequentially without exposing tis underlying representation.
Mediator:Define an object that encapsulates how a set of objects interact.Mediator promotes loose coupling by keeping objects from referring to each other explicitly,and it lets you vary their interaction independently.
Memento:Without violating encapsulation,capture and externalize an object's internal state so that the object can be resotred to this state later.
Observer:Define a one-to-many dependency between objects so that when one object changes state,all its dependents are notified and updated automatically.
Prototype:Specify the kingd of objects to create using a prototypical instance,and create new objects by copying this prototype.
Proxy:Provide a surrogate or placeholder for another object to control access to it.
Singleton:Ensure a class only has one instance,and provide a global point of access to it.
State:Allow an object to alter its behavior when its internal state changes.The object will appear to change its class.
Strategy:Define a family of algorithms,encapsulate each one,and make theminterchangeable.Strategy lets the algorithm vary independently from clients that use it.
Template Method:Define the skeleton of an algorithm in an operation,deferring some steps to subclasses.template Method lets subclasses redefine certain steps of an algorithm without changing the algorithm's structure.
Visitor:Represent an operation to be performed on the elements of an object structure.Visitor lets you define a new operation without changing the classes of the elements on which it operates.
Remember all these Patterns ,they will benefit on your work!