الگوی طراحی چیست؟ce.sharif.edu/courses/89-90/2/ce474-1/resources... · singleton...

27

Upload: others

Post on 21-Jul-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: الگوی طراحی چیست؟ce.sharif.edu/courses/89-90/2/ce474-1/resources... · Singleton Iterator Adapter غثبٌه. یطٌیرفآ یبَّگلا زا یداذؼت تسرْف
Page 2: الگوی طراحی چیست؟ce.sharif.edu/courses/89-90/2/ce474-1/resources... · Singleton Iterator Adapter غثبٌه. یطٌیرفآ یبَّگلا زا یداذؼت تسرْف

الگبی طراحی

زرا فبدست

غسال حبئری

Page 3: الگوی طراحی چیست؟ce.sharif.edu/courses/89-90/2/ce474-1/resources... · Singleton Iterator Adapter غثبٌه. یطٌیرفآ یبَّگلا زا یداذؼت تسرْف

الگ تؼریفتبریخچ

اجسای الگ

لبلت هستذ سبزیهسایب

هؼبیتدست ثذی

لیست الگبSingleton

Iterator

Adapter

هبثغ

Page 4: الگوی طراحی چیست؟ce.sharif.edu/courses/89-90/2/ce474-1/resources... · Singleton Iterator Adapter غثبٌه. یطٌیرفآ یبَّگلا زا یداذؼت تسرْف

تؼریف الگ

را حل تىرار ضذ ثرای یه هطىل

تصیف هطىلی و ثبرب ثبرب اتفبق افتبد است

سیل ای است ثرای ثجت اتمبل هبرت ب در یه زهی

خبظ

الگ تؼریفتبریخچ

اجسای الگلبلت هستذ سبزی

هسایبهؼبیت

دست ثذیلیست الگب

Singleton

Iterator

Adapter هبثغ

Page 5: الگوی طراحی چیست؟ce.sharif.edu/courses/89-90/2/ce474-1/resources... · Singleton Iterator Adapter غثبٌه. یطٌیرفآ یبَّگلا زا یداذؼت تسرْف

الگی طراحی

هسبئل ثرای تىرار لبثل حل رش یه

هختلف ضرایط در هسبئل حل ثرای ضرح یب لبلت یه

سبزی هستذ ثرای ارزضوذ حلی را

لطؼبت ب خب وتبة از هجذد ی استفبد افسایص

ب آى بی حل را هطىالت ثذی طجم

الگ تؼریفتبریخچ

اجسای الگلبلت هستذ سبزی

هسایبهؼبیت

دست ثذیلیست الگب

Singleton

Iterator

Adapter هبثغ

Page 6: الگوی طراحی چیست؟ce.sharif.edu/courses/89-90/2/ce474-1/resources... · Singleton Iterator Adapter غثبٌه. یطٌیرفآ یبَّگلا زا یداذؼت تسرْف

تبریخچ

1977-هؼوبری ث بم وریستفر الىسبذر تؼریف الگ

تبریخچاجسای الگ

لبلت هستذ سبزیهسایب

هؼبیتدست ثذی

لیست الگبSingleton

Iterator

Adapter هبثغ

Page 7: الگوی طراحی چیست؟ce.sharif.edu/courses/89-90/2/ce474-1/resources... · Singleton Iterator Adapter غثبٌه. یطٌیرفآ یبَّگلا زا یداذؼت تسرْف

تبریخچ

هؼوبری ث بم وریستفر الىسبذر

تسؼ دذگبى رم افسار 1990

چبر فر ث بم بی ، گبهب، جبسى، لن لسبیذز

تؼریف الگتبریخچ

اجسای الگلبلت هستذ سبزی

هسایبهؼبیت

دست ثذیلیست الگب

Singleton

Iterator

Adapter هبثغ

Page 8: الگوی طراحی چیست؟ce.sharif.edu/courses/89-90/2/ce474-1/resources... · Singleton Iterator Adapter غثبٌه. یطٌیرفآ یبَّگلا زا یداذؼت تسرْف

Design pattern:

Elements of Reusable object Oriented Software

ایذ ی استفبد از الگب در طراحی رم افسار فرهت استبذارد هستذ سبزی

دست ثذی الگب

تؼریف الگتبریخچ

اجسای الگلبلت هستذ سبزی

هسایبهؼبیت

دست ثذیلیست الگب

Singleton

Iterator

Adapter هبثغ

Page 9: الگوی طراحی چیست؟ce.sharif.edu/courses/89-90/2/ce474-1/resources... · Singleton Iterator Adapter غثبٌه. یطٌیرفآ یبَّگلا زا یداذؼت تسرْف

اجسای الگ

یه الگی طراحی ثبیذ ضبهل هارد زیر ثبضذ

.ػجبرتی و الگ را تصیف وذ: بم

ضرحی از هطىلی و لرار است تسط ایي : هطىل

.الگی طراحی را حل آى ثیبى ضد

چ لت ثبیذ از ایي الگی طراحی استفبد : زهی

.ورد

اجساء طراحی و یبز دارین وچیي : را حل

.ارتجبطبت آب

تؼریف الگتبریخچ

اجسای الگلبلت هستذ سبزی

هسایبهؼبیت

دست ثذیلیست الگب

Singleton

Iterator

Adapter هبثغ

Page 10: الگوی طراحی چیست؟ce.sharif.edu/courses/89-90/2/ce474-1/resources... · Singleton Iterator Adapter غثبٌه. یطٌیرفآ یبَّگلا زا یداذؼت تسرْف

لبلت هستذ سبزی ثرای الگبی طراحی

یه بم خة هفیذ ثرای الگ بم الگ

تؼریف . )یه جول وتب هختصر درثبر چیسی و الگ اجبم هی دذ(هسل را حل ث صرت هختصر هفیذ

(intent)ذف

.بم بی دیگری و الگ ثب آى ضبخت هی ضد بم هستؼبر

یه وبیص گرافیىی از الگ سبختبر

(.جد دارذ)والس ب اضیبئ و در الگ ضروت دارذ اجساء تطىیل دذ (Participants)

چگ اجسای تطىیل دذ ثب ن وىبری هی وذ تب ظبیفطبى را اجبم .دذ

وىبریب(Collaborations)

تبیج استفبد از الگی هرد ظر تبیج (Consequences)

ىیه بی ثرای پیبد سبزی الگی هرد ظرت پیبد سبزی

تؼریف الگتبریخچاجسای الگ

لبلت هستذسبزیهسایب

هؼبیتدست ثذی

لیست الگبSingleton

Iterator

Adapter هبثغ

Page 11: الگوی طراحی چیست؟ce.sharif.edu/courses/89-90/2/ce474-1/resources... · Singleton Iterator Adapter غثبٌه. یطٌیرفآ یبَّگلا زا یداذؼت تسرْف

هسایب ی استفبد از الگبی طراحی

ثذی ثذی دست الگبی طراحی در حل هطىل طجم جبیگب

تجرثی ثدى الگبی طراحی

الگبی طراحی استفبد هجذد

الگبی طراحی ث هثبث فرگ لغت هطترن

مص الگبی طراحی در آهزش طراحی ضیءگرا

ب تؼوین الگبی طراحی در سبیر حز

تؼریف الگتبریخچاجسای الگلبلت هستذ سبزی

هسایبهؼبیت

دست ثذیلیست الگب

Singleton

Iterator

Adapter هبثغ

Page 12: الگوی طراحی چیست؟ce.sharif.edu/courses/89-90/2/ce474-1/resources... · Singleton Iterator Adapter غثبٌه. یطٌیرفآ یبَّگلا زا یداذؼت تسرْف

هؼبیت استفبد از الگبی طراحی

رزافسى ثسرگی پیچذگی همبثل در طراحی الگبی ثدى وچه

هج هسبئل

هسئل ث پبسخگیی جت الگب تسؼ ث یبز

طراحی الگبی تؼذاد تع افسایص

هی هسبل ضذى تر پیچیذ ثبػث طراحی الگبی از بدرست استفبد

ضد

تؼریف الگتبریخچاجسای الگلبلت هستذ سبزیهسایب

هؼبیتدست ثذی

لیست الگبSingleton

Iterator

Adapter هبثغ

Page 13: الگوی طراحی چیست؟ce.sharif.edu/courses/89-90/2/ce474-1/resources... · Singleton Iterator Adapter غثبٌه. یطٌیرفآ یبَّگلا زا یداذؼت تسرْف

دست ثذی الگ بی طراحی

الگبی آفریطی(Creational Pattern)

رش بی ایجبد اضیب

الگبی سبختبری(Structural Patten)

چگگی ترویت اضیب والس ب در سبختبر بی ثسرگتر

الگبی رفتبری(Behavioral Pattern)

توروس ری ارتجبط اضیب ثب یىذیگر

تؼریف الگتبریخچاجسای الگلبلت هستذ سبزیهسایبهؼبیت

دست ثذیلیست الگب

Singleton

Iterator

Adapter هبثغ

Page 14: الگوی طراحی چیست؟ce.sharif.edu/courses/89-90/2/ce474-1/resources... · Singleton Iterator Adapter غثبٌه. یطٌیرفآ یبَّگلا زا یداذؼت تسرْف

فرست تؼذادی از الگبی آفریطی

Factory Method

Abstract Factory

Builder

Prototype

Singleton

تؼریف الگتبریخچاجسای الگلبلت هستذ سبزیهسایبهؼبیتدست ثذی

لیست الگبSingleton

Iterator

Adapter هبثغ

Page 15: الگوی طراحی چیست؟ce.sharif.edu/courses/89-90/2/ce474-1/resources... · Singleton Iterator Adapter غثبٌه. یطٌیرفآ یبَّگلا زا یداذؼت تسرْف

فرست تؼذادی از الگبی سبختبری

Adapter

Bridge

Composite

Decorator

Flyweight

Facade

Proxy

تؼریف الگتبریخچاجسای الگلبلت هستذ سبزیهسایبهؼبیتدست ثذی

لیست الگبSingleton

Iterator

Adapter هبثغ

Page 16: الگوی طراحی چیست؟ce.sharif.edu/courses/89-90/2/ce474-1/resources... · Singleton Iterator Adapter غثبٌه. یطٌیرفآ یبَّگلا زا یداذؼت تسرْف

فرست تؼذادی از الگبی رفتبری

Interpreter

Template Method

Chain of Responsibility

Command

Iterator

Mediator

Memento

Observer

State

Strategy

Visitor

تؼریف الگتبریخچاجسای الگلبلت هستذ سبزیهسایبهؼبیتدست ثذی

لیست الگبSingleton

Iterator

Adapter هبثغ

Page 17: الگوی طراحی چیست؟ce.sharif.edu/courses/89-90/2/ce474-1/resources... · Singleton Iterator Adapter غثبٌه. یطٌیرفآ یبَّگلا زا یداذؼت تسرْف

ثررسی چذ الگ

Iterator

Adapter

singlton

تؼریف الگتبریخچاجسای الگلبلت هستذ سبزیهسایبهؼبیتدست ثذیلیست الگب

Singleton

Iterator

Adapter هبثغ

Page 18: الگوی طراحی چیست؟ce.sharif.edu/courses/89-90/2/ce474-1/resources... · Singleton Iterator Adapter غثبٌه. یطٌیرفآ یبَّگلا زا یداذؼت تسرْف

Singleton pattern

است ضذ ایجبد و یه فمط هب والس از ایى از اطویبى ثرای

والس یه از و ایجبد وردى هحذد ثرای

تؼریف الگتبریخچاجسای الگلبلت هستذ سبزیهسایبهؼبیتدست ثذیلیست الگب

Singleton

Iterator

Adapter هبثغ

Page 19: الگوی طراحی چیست؟ce.sharif.edu/courses/89-90/2/ce474-1/resources... · Singleton Iterator Adapter غثبٌه. یطٌیرفآ یبَّگلا زا یداذؼت تسرْف

ح پیبدسبزی

آسبتریي را ایجبد یه هتغیر استبتیه داخل والس

True لرار دادى هتغیر در صرت تلیذ الیي و

در سبیر دفؼبت در صرتFalse در غیر .ثدى هتغیر تلیذ هی ضد

.صرت تست هی ضد

تؼریف الگتبریخچاجسای الگلبلت هستذ سبزیهسایبهؼبیتدست ثذیلیست الگب

Singleton

Iterator

Adapter هبثغ

Page 20: الگوی طراحی چیست؟ce.sharif.edu/courses/89-90/2/ce474-1/resources... · Singleton Iterator Adapter غثبٌه. یطٌیرفآ یبَّگلا زا یداذؼت تسرْف

singleton

return uniquelnstance

Singleton

static Instance()

SingletonOperation()

GetSingletonData()

Static uniquelnstance

singletonData

تؼریف الگتبریخچاجسای الگلبلت هستذ سبزیهسایبهؼبیتدست ثذیلیست الگب

Singleton

Iterator

Adapter هبثغ

Page 21: الگوی طراحی چیست؟ce.sharif.edu/courses/89-90/2/ce474-1/resources... · Singleton Iterator Adapter غثبٌه. یطٌیرفآ یبَّگلا زا یداذؼت تسرْف

Iterator

، ب داد از لیستی یب هروت اضیب درى اضیب ث دسترسی ثرای

اضیب ضذى رخیر ی ح از اطالع ثذى

تؼریف الگتبریخچاجسای الگلبلت هستذ سبزیهسایبهؼبیتدست ثذیلیست الگبSingleton

Iterator

Adapter هبثغ

Page 22: الگوی طراحی چیست؟ce.sharif.edu/courses/89-90/2/ce474-1/resources... · Singleton Iterator Adapter غثبٌه. یطٌیرفآ یبَّگلا زا یداذؼت تسرْف

iteratorالگی

.تؼریف یه اسط ثب اهىبى دسترسی ترتیجی ث ػبصر یه هجوػ

هستمل از پیبد سبزی ضی هروت والسی است و اسط را پیبد

.ورد است

تؼریف الگتبریخچاجسای الگلبلت هستذ سبزیهسایبهؼبیتدست ثذیلیست الگبSingleton

Iterator

Adapter هبثغ

Page 23: الگوی طراحی چیست؟ce.sharif.edu/courses/89-90/2/ce474-1/resources... · Singleton Iterator Adapter غثبٌه. یطٌیرفآ یبَّگلا زا یداذؼت تسرْف

Iterator

یه اسطتؼریف

تؼریف هتذبی زیر

ثررسی جد ػصر ثؼذی در لیست

ثرگرداذى ػصر فؼلی

ثرگرداذى ػصر ثؼذی

ػصر ال ثرگطت ث

تؼریف الگتبریخچاجسای الگلبلت هستذ سبزیهسایبهؼبیتدست ثذیلیست الگبSingleton

Iterator

Adapter هبثغ

Page 24: الگوی طراحی چیست؟ce.sharif.edu/courses/89-90/2/ce474-1/resources... · Singleton Iterator Adapter غثبٌه. یطٌیرفآ یبَّگلا زا یداذؼت تسرْف

Adapter

تغییر اسط ث گ ای و سریس دذ ب اتظبر آى را •

.دارذ

درخاست ب را از سیستن ال هی گیرد آى ب را ث گ •

ای تغییر هی دذ و ثرای سیستن دم لبثل درن اجرا

ثبضذ

تؼریف الگتبریخچاجسای الگلبلت هستذ سبزیهسایبهؼبیتدست ثذیلیست الگبSingleton

Iterator

Adapter هبثغ

Page 25: الگوی طراحی چیست؟ce.sharif.edu/courses/89-90/2/ce474-1/resources... · Singleton Iterator Adapter غثبٌه. یطٌیرفآ یبَّگلا زا یداذؼت تسرْف

Adapter

سیستن لذین فك دذ سیستن جذیذ

تؼریف الگتبریخچاجسای الگلبلت هستذ سبزیهسایبهؼبیتدست ثذیلیست الگبSingleton

Iterator

Adapter هبثغ

Page 26: الگوی طراحی چیست؟ce.sharif.edu/courses/89-90/2/ce474-1/resources... · Singleton Iterator Adapter غثبٌه. یطٌیرفآ یبَّگلا زا یداذؼت تسرْف
Page 27: الگوی طراحی چیست؟ce.sharif.edu/courses/89-90/2/ce474-1/resources... · Singleton Iterator Adapter غثبٌه. یطٌیرفآ یبَّگلا زا یداذؼت تسرْف

هبثغ• http://ooad.wordpress.com/category/

• http://sourcemaking.com/design_patterns

• http://en.wikipedia.org/wiki/Design_pattern_%28computer_s

cience%29

• http://barnamenevis.org/showthread.php/

• http://wwwipd.ira.uka.de/~tichy/patterns/overview.html

• http://sourcemaking.com/design_patterns

• http://www.blackwasp.co.uk/Adapter.aspx

• http://www.dofactory.com/Patterns/PatternAdapter.aspx

تؼریف الگتبریخچاجسای الگلبلت هستذ سبزیهسایبهؼبیتدست ثذیلیست الگبSingleton

Iterator

Adapter هبثغ