Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Design Patterns
‫خورد؟‬ ‫می‬ ‫دردی‬ ‫چه‬ ‫به‬ ‫و‬ ‫چیست‬
‫تهرانی‬ ‫مسیح‬ ‫محمود‬ :‫تحریر‬ ‫به‬
. @ .Mahmud tehrani gmail c...
Desgin Pattern‫؟‬ ‫چیست‬
‫توسط‬ ‫قبل‬ ‫که‬ ‫نویسی‬ ‫برنامه‬ ‫دنیای‬ ‫متداول‬ ‫مسایل‬
‫الگوهایی‬ ‫شکل‬ ‫به‬ ‫و‬ ،‫طراحی‬ ‫ب...
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫در‬
!‫همینطوره‬ ‫هم‬
‫نویسی‬ ‫کد‬ ‫چطور‬ ‫رو‬ ‫مسئله‬ ‫یک‬ ‫گن‬ ‫می‬ ‫شما‬ ‫به...
GOF
‫بحث‬Design Pattern‫نرم‬ ‫دنیای‬ ‫در‬ ‫بار‬ ‫اولین‬ ‫برای‬
‫توسط‬ ‫افزار‬GoF.‫گرفت‬ ‫صورت‬
‫ی‬ ‫درباره‬GoF:
: ‫شامل‬ ‫...
Creational patterns
(‫اشیاء‬ ‫ایجاد‬ ‫های‬‫)روش‬

Abstract factory

Factory method

Builder

Prototype

Singleton
Structural patterns
(‫ها‬‫کل س‬ ‫و‬ ‫اشیاء‬ ‫ترکیب‬ ‫)چگونگی‬

Adapter

Bridge

Composite

Decorator

Facade

Flywei...
Behavioral patterns
(‫یکدیگر‬ ‫با‬ ‫اشیاء‬ ‫ارتباط‬ ‫روی‬ ‫)تمرکز‬

Chain of responsibility

Command

Interpreter

Ite...
Singleton Pattern

‫این‬pattern‫الگوهای‬ ‫بندی‬ ‫طبقه‬ ‫در‬Creational
‫دارد‬ ‫جای‬

:‫هدف‬
‫ایجاد‬ ‫نمونه‬ ‫یک‬ ‫فقط‬ ‫...
‫راه‬ ‫آسانترین‬
‫کل س‬ ‫داخل‬ ‫استاتیک‬ ‫متغییر‬ ‫یک‬ ‫ایجاد‬
True‫نمونه‬ ‫اولین‬ ‫تولید‬ ‫صورت‬ ‫در‬ ‫متغییر‬ ‫دادن‬ ‫...
‫طراحی‬ ‫الگوی‬
‫در‬ ‫سازی‬ ‫پیاده‬PHP
**/
*class Singleton
/*
class Singleton
}
{
‫متغییر‬ ‫تعریف‬
**/
* @var Singleton reference to singleton
instance
/*
$private static instance;
‫متود‬getinstance
**/
*gets the instance via lazy initialization
( )created on frst usage
*
* @return self
/*
public stati...
Private construct
**/
*:is not allowed to call from outside
private!
*
/*
__private function construct()
}
{
Private clone
**/
*prevent the instance from being cloned
*
* @return void
/*
__private function clone()
}
{
Private wakeup
**/
*prevent from being unserialized
*
* @return void
/*
__private function wakeup()
}
{
‫کاربرد‬Singleton

‫به‬ ‫باز‬ ‫کانکشن‬ ‫یک‬ ‫فقط‬ ‫و‬ ‫دیتابیس)فقط‬ ‫تو‬ ‫کانکشن‬
(‫باشیم‬ ‫داشته‬ ‫دیتابیس‬

‫فقط‬ ‫ما‬...
‫عملی‬ ‫مثال‬Singletone‫کل س‬
‫دیتابیس‬
class Db{
$_ =private static instance NULL;
$ =private connected FALSE;
$ =private...
‫دیتابیس‬ ‫از‬ ‫استفاده‬ ‫اول‬ ‫مثال‬
' . .include db class php';
//create instane of Db class
$= ::db Db getInstance();
t...
‫دیتابیس‬ ‫از‬ ‫استفاده‬ ‫دوم‬ ‫مثال‬
$= ::db Db getInstance();
try{
$-> ($ [' '][' '],db connect cnfg db hostname
$ [' ']...
Upcoming SlideShare
Loading in …5
×
Upcoming SlideShare
Design Patterns
Next
Download to read offline and view in fullscreen.

10

Share

Download to read offline

Design Patterns چیست و به چه دردی می خورد؟ (persian)

Download to read offline

دیزاین پترن یا الگو های طراحی نرم افزار و برنامه نویسی

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

Design Patterns چیست و به چه دردی می خورد؟ (persian)

  1. 1. Design Patterns ‫خورد؟‬ ‫می‬ ‫دردی‬ ‫چه‬ ‫به‬ ‫و‬ ‫چیست‬ ‫تهرانی‬ ‫مسیح‬ ‫محمود‬ :‫تحریر‬ ‫به‬ . @ .Mahmud tehrani gmail com :// .http masihtehrani ir
  2. 2. Desgin Pattern‫؟‬ ‫چیست‬ ‫توسط‬ ‫قبل‬ ‫که‬ ‫نویسی‬ ‫برنامه‬ ‫دنیای‬ ‫متداول‬ ‫مسایل‬ ‫الگوهایی‬ ‫شکل‬ ‫به‬ ‫و‬ ،‫طراحی‬ ‫بهینه‬ ‫بصورت‬ ‫افرادی‬ .‫اند‬ ‫شده‬ ‫بندی‬ ‫دسته‬ ‫استاندارد‬ ‫با‬ ‫دیگران‬ ‫که‬ ‫چرخی‬ ‫نیستید‬ ‫مجبور‬ ‫دیگر‬ ‫شما‬ ‫واقع‬ ‫در‬ .‫کنید‬ ‫اختراع‬ ‫دوباره‬ ‫رو‬ ‫کردند‬ ‫اختراع‬ ‫مشقت‬ : ‫دیگر‬ ‫تعبیری‬ ‫به‬ ‫که‬ ‫کسی‬OOP‫که‬ ‫ست‬ ‫کسی‬ ‫مثل‬ ‫میدونه‬ ‫خوب‬ ‫رو‬ ‫اما‬ ‫میشناسه؛‬ ‫رو‬ ‫کیک‬ ‫یک‬ ‫ی‬ ‫دهنده‬ ‫تشکیل‬ ‫اجزای‬ ) ‫طراحی‬ ‫الگوهای‬ ‫که‬ ‫کسی‬Design Patternas‫رو‬ ( ‫اختیار‬ ‫در‬ ‫هم‬ ‫رو‬ ‫کیک‬ ‫اون‬ ‫دقیق‬ ‫پخت‬ ‫دستور‬ ‫میدونه‬ .‫داره‬ ‫خوشمزه‬ ‫و‬ ‫یکدست‬ ‫همیشه‬ ‫اول‬ ‫نفر‬ ‫کیک‬ : ‫نتیجه‬
  3. 3. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫در‬ !‫همینطوره‬ ‫هم‬ ‫نویسی‬ ‫کد‬ ‫چطور‬ ‫رو‬ ‫مسئله‬ ‫یک‬ ‫گن‬ ‫می‬ ‫شما‬ ‫به‬ ‫ها‬ ‫الگو‬ ‫و‬ ‫باشه‬ ‫مهندسی‬ ‫های‬ ‫خاصیت‬ ‫دارای‬ ‫کدتون‬ ‫تا‬ ‫کنید‬ .‫باشه‬ ‫نداشته‬ ‫رو‬ ‫کیفیت‬ ‫بی‬ ‫یا‬ ‫اسپاگتی‬ ‫کد‬ ‫یک‬ ‫مشکلت‬ ‫یک‬ ‫تحت‬ "‫روشن‬ ‫مسئله‬ ‫"یک‬ ‫برای‬ ‫کلی‬ ‫طور‬ ‫به‬ ‫ها‬ ‫الگو‬ .‫دهند‬ ‫می‬ ‫ارایه‬ ‫حل‬ ‫راه‬ ‫یک‬ "‫مشخص‬ ‫"شرایط‬ ‫شی‬ ‫در‬ ‫توانی‬ ‫می‬ ‫چطور‬ ‫بدانیی‬ ‫خواهی‬ ‫می‬ ‫شما‬ ‫مثل‬ ‫محدود‬ ‫و‬ ‫کنترل‬ ‫رو‬ ‫خاص‬ ‫کل س‬ ‫یک‬ ‫از‬ ‫شی‬ ‫ایجاد‬ ‫گرایی‬ ‫نام‬ ‫به‬ ‫هست‬ ‫الگویی‬ ‫کار‬ ‫این‬ ‫برای‬ ‫کنی!؟‬Singleton ‫این‬ ‫حل‬ ‫برای‬ ‫روش‬ ‫بهترین‬ ‫که‬ ‫شده‬ ‫اثبات‬ ‫همه‬ ‫به‬ ‫که‬ ‫نیست‬ ‫لزم‬ ‫شما‬ ‫دیگه‬ ‫الگو‬ ‫این‬ ‫وجود‬ ‫با‬ .‫است‬ ‫مسئله‬ !!!‫کنی‬ ‫حل‬ ‫خودت‬ ‫روش‬ ‫از‬ ‫رو‬ ‫مسئله‬ ‫خودت‬
  4. 4. GOF ‫بحث‬Design Pattern‫نرم‬ ‫دنیای‬ ‫در‬ ‫بار‬ ‫اولین‬ ‫برای‬ ‫توسط‬ ‫افزار‬GoF.‫گرفت‬ ‫صورت‬ ‫ی‬ ‫درباره‬GoF: : ‫شامل‬ ‫نفره‬ ‫چهار‬ ‫گروه‬ ‫یک‬ ,Gamma Erich Richard Helm Ralph Johnson John Vlissides ‫به‬ ‫ملقب‬Gang of Four‫یا‬GoF‫در‬ ‫گروه‬ ‫این‬ .‫هستند‬ ۲۱‫سال‬ ‫اکتبر‬۱۹۹۴: ‫عنوان‬ ‫تحت‬ ‫را‬ ‫کتابی‬ :Design Patterns Elements of Reusable -Object Oriented Software
  5. 5. Creational patterns (‫اشیاء‬ ‫ایجاد‬ ‫های‬‫)روش‬  Abstract factory  Factory method  Builder  Prototype  Singleton
  6. 6. Structural patterns (‫ها‬‫کل س‬ ‫و‬ ‫اشیاء‬ ‫ترکیب‬ ‫)چگونگی‬  Adapter  Bridge  Composite  Decorator  Facade  Flyweight  Proxy
  7. 7. Behavioral patterns (‫یکدیگر‬ ‫با‬ ‫اشیاء‬ ‫ارتباط‬ ‫روی‬ ‫)تمرکز‬  Chain of responsibility  Command  Interpreter  Iterator  Mediator  Memento  Observer  State  Strategy  Template method  Visitor
  8. 8. Singleton Pattern  ‫این‬pattern‫الگوهای‬ ‫بندی‬ ‫طبقه‬ ‫در‬Creational ‫دارد‬ ‫جای‬  :‫هدف‬ ‫ایجاد‬ ‫نمونه‬ ‫یک‬ ‫فقط‬ ‫ما‬ ‫کل س‬ ‫از‬ ‫اینکه‬ ‫از‬ ‫اطمینان‬ ‫برای‬ .‫است‬ ‫شده‬ ‫کل س‬ ‫از‬ ‫نمونه‬ ‫ایجاد‬ ‫کردن‬ ‫محدود‬ ‫برای‬
  9. 9. ‫راه‬ ‫آسانترین‬ ‫کل س‬ ‫داخل‬ ‫استاتیک‬ ‫متغییر‬ ‫یک‬ ‫ایجاد‬ True‫نمونه‬ ‫اولین‬ ‫تولید‬ ‫صورت‬ ‫در‬ ‫متغییر‬ ‫دادن‬ ‫قرار‬ ‫صورت‬ ‫این‬ ‫غیر‬ ‫در‬False.‫دهیم‬‫می‬ ‫قرار‬
  10. 10. ‫طراحی‬ ‫الگوی‬
  11. 11. ‫در‬ ‫سازی‬ ‫پیاده‬PHP **/ *class Singleton /* class Singleton } {
  12. 12. ‫متغییر‬ ‫تعریف‬ **/ * @var Singleton reference to singleton instance /* $private static instance;
  13. 13. ‫متود‬getinstance **/ *gets the instance via lazy initialization ( )created on frst usage * * @return self /* public static function getInstance() } ( === ::$ )if null static instance{ ::$ =static instance new static; {
  14. 14. Private construct **/ *:is not allowed to call from outside private! * /* __private function construct() } {
  15. 15. Private clone **/ *prevent the instance from being cloned * * @return void /* __private function clone() } {
  16. 16. Private wakeup **/ *prevent from being unserialized * * @return void /* __private function wakeup() } {
  17. 17. ‫کاربرد‬Singleton  ‫به‬ ‫باز‬ ‫کانکشن‬ ‫یک‬ ‫فقط‬ ‫و‬ ‫دیتابیس)فقط‬ ‫تو‬ ‫کانکشن‬ (‫باشیم‬ ‫داشته‬ ‫دیتابیس‬  ‫فقط‬ ‫ما‬ ‫ولی‬ ‫شود‬‫می‬ ‫داده‬ ‫بازگشت‬ ‫بارها‬ ‫ل گ‬ ‫ل گ)یک‬ (‫خواهیم‬‫می‬ ‫را‬ ‫آن‬ ‫بار‬ ‫یک‬  ‫سیستم‬ ‫فایل‬ ‫به‬ ‫مربوط‬ ‫برنامه)این‬ ‫فایل‬ ‫ل ک‬ (.‫باشد‬‫می‬
  18. 18. ‫عملی‬ ‫مثال‬Singletone‫کل س‬ ‫دیتابیس‬ class Db{ $_ =private static instance NULL; $ =private connected FALSE; $ =private mysql NULL; $ =private result NULL; __private function construct(); __public function destruct(); __private function clone(); public static function getInstance(); ($ ,public function connect hostname $ , $ , $ )username password database; public function disconnect();
  19. 19. ‫دیتابیس‬ ‫از‬ ‫استفاده‬ ‫اول‬ ‫مثال‬ ' . .include db class php'; //create instane of Db class $= ::db Db getInstance(); try{ $-> ($ [' '][' '],db connect cnfg db hostname $ [' '][' ']cnfg db username, $[' '][' '], $ [' ']cnfg db password cnfg db [' ']database); $= ' *query SELECT FROM user'; $-> ($ )db command query; ($ = $ -> ())while row db fetchAssoc{ $ [' ']echo row username.' : '
  20. 20. ‫دیتابیس‬ ‫از‬ ‫استفاده‬ ‫دوم‬ ‫مثال‬ $= ::db Db getInstance(); try{ $-> ($ [' '][' '],db connect cnfg db hostname $ [' '][' ']cnfg db username, $[' '][' '], $ [' ']cnfg db password cnfg db [' ']database); $= 'query INSERT INTO user' .'(, ,username password email) ' .'VALUE(' . "'1', '123456',user ' 1@ .user gmail com'" ;'('.
  • JalaloArjmand

    May. 31, 2021
  • AziMa2

    Jul. 15, 2018
  • arashrahmani8

    Feb. 28, 2017
  • daniel_atish

    Sep. 7, 2015
  • nimahassany

    Apr. 6, 2015
  • alishahbazi

    Feb. 4, 2015
  • smohammad

    Jan. 7, 2015
  • AmirAlian

    Dec. 18, 2014
  • aven1

    Dec. 4, 2014
  • omidkhosrojerdi

    Nov. 26, 2014

دیزاین پترن یا الگو های طراحی نرم افزار و برنامه نویسی

Views

Total views

6,355

On Slideshare

0

From embeds

0

Number of embeds

44

Actions

Downloads

213

Shares

0

Comments

0

Likes

10

×