Reading Design Patterns

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!

Design Patterns入門講座
來自:MSDN 中國.NET中幾個常用的Design Pattern介紹(一)Design Pattern是一個非常重要的設計藍圖,對大型、複雜系統的設計有相當大的幫助。設計模式約略分爲三大不同類別:Creational 模式、Behavioral 模式、與B...查看完整版>>Design Patterns入門講座
大衛的Design Patterns學習筆記24:後記
雖然學習、研究設計模式已經很久,但一直未敢動筆寫下任何關于設計模式的文章,一則是因爲DP屬于軟件設計技術,較其它實用編程技術,更爲抽象,需有認真思考、充分實踐才能領會;其二,雖然GoF的DP一書已對所列舉的2...查看完整版>>大衛的Design Patterns學習筆記24:後記
大衛的Design Patterns學習筆記23:Vistor
一、概述前面已經討論過的Adapter模式告訴我們如何應對接口不一致對我們的設計造成的影響,但是,這並不能在如下的Context下發揮多大的作用:一個類系中的多個類要求支持相同的操作,但是這些類提供的接口並不一致。...查看完整版>>大衛的Design Patterns學習筆記23:Vistor
大衛的Design Patterns學習筆記21:Strategy
一、概述Strategy(策略)模式又稱Policy模式,用于定義一系列的算法,把它們一個個封裝起來,並且使它們可相互替換。這裏的算法並非狹義的數據結構或算法理論中所討論的KMP、shell sort等算法,而是指應用程序設計中...查看完整版>>大衛的Design Patterns學習筆記21:Strategy
大衛的Design Patterns學習筆記20:State
一、概述State(狀態)模式用于把一個對象的內部狀態從對象中分離出來,形成單獨的狀態對象,所有與該狀態相關的行爲都放入該狀態對象中。一個對象可能處在這樣或者那樣的狀態,並且在不同的狀態下會表現出不同的行爲...查看完整版>>大衛的Design Patterns學習筆記20:State