SlideShare a Scribd company logo
1 of 20
Download to read offline
Design Patterns
‫خورد؟‬ ‫می‬ ‫دردی‬ ‫چه‬ ‫به‬ ‫و‬ ‫چیست‬
‫تهرانی‬ ‫مسیح‬ ‫محمود‬ :‫تحریر‬ ‫به‬
. @ .Mahmud tehrani gmail com
:// .http masihtehrani ir
Desgin Pattern‫؟‬ ‫چیست‬
‫توسط‬ ‫قبل‬ ‫که‬ ‫نویسی‬ ‫برنامه‬ ‫دنیای‬ ‫متداول‬ ‫مسایل‬
‫الگوهایی‬ ‫شکل‬ ‫به‬ ‫و‬ ،‫طراحی‬ ‫بهینه‬ ‫بصورت‬ ‫افرادی‬
.‫اند‬ ‫شده‬ ‫بندی‬ ‫دسته‬ ‫استاندارد‬
‫با‬ ‫دیگران‬ ‫که‬ ‫چرخی‬ ‫نیستید‬ ‫مجبور‬ ‫دیگر‬ ‫شما‬ ‫واقع‬ ‫در‬
.‫کنید‬ ‫اختراع‬ ‫دوباره‬ ‫رو‬ ‫کردند‬ ‫اختراع‬ ‫مشقت‬
: ‫دیگر‬ ‫تعبیری‬ ‫به‬
‫که‬ ‫کسی‬OOP‫که‬ ‫ست‬ ‫کسی‬ ‫مثل‬ ‫میدونه‬ ‫خوب‬ ‫رو‬
‫اما‬ ‫میشناسه؛‬ ‫رو‬ ‫کیک‬ ‫یک‬ ‫ی‬ ‫دهنده‬ ‫تشکیل‬ ‫اجزای‬
) ‫طراحی‬ ‫الگوهای‬ ‫که‬ ‫کسی‬Design Patternas‫رو‬ (
‫اختیار‬ ‫در‬ ‫هم‬ ‫رو‬ ‫کیک‬ ‫اون‬ ‫دقیق‬ ‫پخت‬ ‫دستور‬ ‫میدونه‬
.‫داره‬
‫خوشمزه‬ ‫و‬ ‫یکدست‬ ‫همیشه‬ ‫اول‬ ‫نفر‬ ‫کیک‬ : ‫نتیجه‬
‫نویسی‬ ‫برنامه‬ ‫و‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫در‬
!‫همینطوره‬ ‫هم‬
‫نویسی‬ ‫کد‬ ‫چطور‬ ‫رو‬ ‫مسئله‬ ‫یک‬ ‫گن‬ ‫می‬ ‫شما‬ ‫به‬ ‫ها‬ ‫الگو‬
‫و‬ ‫باشه‬ ‫مهندسی‬ ‫های‬ ‫خاصیت‬ ‫دارای‬ ‫کدتون‬ ‫تا‬ ‫کنید‬
.‫باشه‬ ‫نداشته‬ ‫رو‬ ‫کیفیت‬ ‫بی‬ ‫یا‬ ‫اسپاگتی‬ ‫کد‬ ‫یک‬ ‫مشکلت‬
‫یک‬ ‫تحت‬ "‫روشن‬ ‫مسئله‬ ‫"یک‬ ‫برای‬ ‫کلی‬ ‫طور‬ ‫به‬ ‫ها‬ ‫الگو‬
.‫دهند‬ ‫می‬ ‫ارایه‬ ‫حل‬ ‫راه‬ ‫یک‬ "‫مشخص‬ ‫"شرایط‬
‫شی‬ ‫در‬ ‫توانی‬ ‫می‬ ‫چطور‬ ‫بدانیی‬ ‫خواهی‬ ‫می‬ ‫شما‬ ‫مثل‬
‫محدود‬ ‫و‬ ‫کنترل‬ ‫رو‬ ‫خاص‬ ‫کل س‬ ‫یک‬ ‫از‬ ‫شی‬ ‫ایجاد‬ ‫گرایی‬
‫نام‬ ‫به‬ ‫هست‬ ‫الگویی‬ ‫کار‬ ‫این‬ ‫برای‬ ‫کنی!؟‬Singleton
‫این‬ ‫حل‬ ‫برای‬ ‫روش‬ ‫بهترین‬ ‫که‬ ‫شده‬ ‫اثبات‬ ‫همه‬ ‫به‬ ‫که‬
‫نیست‬ ‫لزم‬ ‫شما‬ ‫دیگه‬ ‫الگو‬ ‫این‬ ‫وجود‬ ‫با‬ .‫است‬ ‫مسئله‬
!!!‫کنی‬ ‫حل‬ ‫خودت‬ ‫روش‬ ‫از‬ ‫رو‬ ‫مسئله‬ ‫خودت‬
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
Creational patterns
(‫اشیاء‬ ‫ایجاد‬ ‫های‬‫)روش‬

Abstract factory

Factory method

Builder

Prototype

Singleton
Structural patterns
(‫ها‬‫کل س‬ ‫و‬ ‫اشیاء‬ ‫ترکیب‬ ‫)چگونگی‬

Adapter

Bridge

Composite

Decorator

Facade

Flyweight

Proxy
Behavioral patterns
(‫یکدیگر‬ ‫با‬ ‫اشیاء‬ ‫ارتباط‬ ‫روی‬ ‫)تمرکز‬

Chain of responsibility

Command

Interpreter

Iterator

Mediator

Memento

Observer

State

Strategy

Template method

Visitor
Singleton Pattern

‫این‬pattern‫الگوهای‬ ‫بندی‬ ‫طبقه‬ ‫در‬Creational
‫دارد‬ ‫جای‬

:‫هدف‬
‫ایجاد‬ ‫نمونه‬ ‫یک‬ ‫فقط‬ ‫ما‬ ‫کل س‬ ‫از‬ ‫اینکه‬ ‫از‬ ‫اطمینان‬ ‫برای‬
.‫است‬ ‫شده‬
‫کل س‬ ‫از‬ ‫نمونه‬ ‫ایجاد‬ ‫کردن‬ ‫محدود‬ ‫برای‬
‫راه‬ ‫آسانترین‬
‫کل س‬ ‫داخل‬ ‫استاتیک‬ ‫متغییر‬ ‫یک‬ ‫ایجاد‬
True‫نمونه‬ ‫اولین‬ ‫تولید‬ ‫صورت‬ ‫در‬ ‫متغییر‬ ‫دادن‬ ‫قرار‬
‫صورت‬ ‫این‬ ‫غیر‬ ‫در‬False.‫دهیم‬‫می‬ ‫قرار‬
‫طراحی‬ ‫الگوی‬
‫در‬ ‫سازی‬ ‫پیاده‬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 static function getInstance()
}
( === ::$ )if null static instance{
::$ =static instance new static;
{
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 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();
‫دیتابیس‬ ‫از‬ ‫استفاده‬ ‫اول‬ ‫مثال‬
' . .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.' : '
‫دیتابیس‬ ‫از‬ ‫استفاده‬ ‫دوم‬ ‫مثال‬
$= ::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'"
;'('.

More Related Content

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

How to be a better Developer & Programmer
How to be a better Developer & ProgrammerHow to be a better Developer & Programmer
How to be a better Developer & ProgrammerReza Razavi
 
android_test_approach
android_test_approachandroid_test_approach
android_test_approachSadegh Saberi
 
آشنایی با زبان جاوا - مقدماتی اندروید
آشنایی با زبان جاوا - مقدماتی اندرویدآشنایی با زبان جاوا - مقدماتی اندروید
آشنایی با زبان جاوا - مقدماتی اندرویدSadegh Ghanbari Shohani
 
Oracle Data Integrator (persian)
Oracle Data Integrator (persian)Oracle Data Integrator (persian)
Oracle Data Integrator (persian)Ehsan Hamzei
 
Data cleansing
Data cleansingData cleansing
Data cleansingSiminZolfi
 
یکی از بزرگ‌ترین مشکلات OOP اینه که اتفاق نظر بر سر اینکه OOP دقیقا چه چیزی ه...
یکی از بزرگ‌ترین مشکلات OOP اینه که اتفاق نظر بر سر اینکه OOP دقیقا چه چیزی ه...یکی از بزرگ‌ترین مشکلات OOP اینه که اتفاق نظر بر سر اینکه OOP دقیقا چه چیزی ه...
یکی از بزرگ‌ترین مشکلات OOP اینه که اتفاق نظر بر سر اینکه OOP دقیقا چه چیزی ه...SaeedAsghari5
 
(ِData Structures-Java Object oriented Programming Languages)ساختارهای دیتا ...
 (ِData Structures-Java Object oriented Programming Languages)ساختارهای دیتا ... (ِData Structures-Java Object oriented Programming Languages)ساختارهای دیتا ...
(ِData Structures-Java Object oriented Programming Languages)ساختارهای دیتا ...Muhibullah Aman
 
اسلاید های شروع برنامه نویسی اندروید با جاوا - مهندس سید وحید هاشمی
اسلاید های شروع برنامه نویسی اندروید با جاوا - مهندس سید وحید هاشمیاسلاید های شروع برنامه نویسی اندروید با جاوا - مهندس سید وحید هاشمی
اسلاید های شروع برنامه نویسی اندروید با جاوا - مهندس سید وحید هاشمیVahid Hashemi
 

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

How to be a better Developer & Programmer
How to be a better Developer & ProgrammerHow to be a better Developer & Programmer
How to be a better Developer & Programmer
 
Object-Oriented-Programming-in-Python
Object-Oriented-Programming-in-PythonObject-Oriented-Programming-in-Python
Object-Oriented-Programming-in-Python
 
android_test_approach
android_test_approachandroid_test_approach
android_test_approach
 
Docker
DockerDocker
Docker
 
Rbdmap ceph realease 0.2
Rbdmap ceph realease 0.2Rbdmap ceph realease 0.2
Rbdmap ceph realease 0.2
 
Pg autoscaling in ceph
Pg autoscaling in  cephPg autoscaling in  ceph
Pg autoscaling in ceph
 
Steganogrphy
SteganogrphySteganogrphy
Steganogrphy
 
rbdmap in ceph
rbdmap in ceph rbdmap in ceph
rbdmap in ceph
 
آشنایی با زبان جاوا - مقدماتی اندروید
آشنایی با زبان جاوا - مقدماتی اندرویدآشنایی با زبان جاوا - مقدماتی اندروید
آشنایی با زبان جاوا - مقدماتی اندروید
 
how enable ceph dashboard
how enable  ceph dashboardhow enable  ceph dashboard
how enable ceph dashboard
 
Oracle Data Integrator (persian)
Oracle Data Integrator (persian)Oracle Data Integrator (persian)
Oracle Data Integrator (persian)
 
Scrum Presentation
Scrum PresentationScrum Presentation
Scrum Presentation
 
MongoDB
MongoDBMongoDB
MongoDB
 
Data cleansing
Data cleansingData cleansing
Data cleansing
 
Html & Css
Html & CssHtml & Css
Html & Css
 
یکی از بزرگ‌ترین مشکلات OOP اینه که اتفاق نظر بر سر اینکه OOP دقیقا چه چیزی ه...
یکی از بزرگ‌ترین مشکلات OOP اینه که اتفاق نظر بر سر اینکه OOP دقیقا چه چیزی ه...یکی از بزرگ‌ترین مشکلات OOP اینه که اتفاق نظر بر سر اینکه OOP دقیقا چه چیزی ه...
یکی از بزرگ‌ترین مشکلات OOP اینه که اتفاق نظر بر سر اینکه OOP دقیقا چه چیزی ه...
 
(ِData Structures-Java Object oriented Programming Languages)ساختارهای دیتا ...
 (ِData Structures-Java Object oriented Programming Languages)ساختارهای دیتا ... (ِData Structures-Java Object oriented Programming Languages)ساختارهای دیتا ...
(ِData Structures-Java Object oriented Programming Languages)ساختارهای دیتا ...
 
Sql tuning
Sql tuningSql tuning
Sql tuning
 
اسلاید های شروع برنامه نویسی اندروید با جاوا - مهندس سید وحید هاشمی
اسلاید های شروع برنامه نویسی اندروید با جاوا - مهندس سید وحید هاشمیاسلاید های شروع برنامه نویسی اندروید با جاوا - مهندس سید وحید هاشمی
اسلاید های شروع برنامه نویسی اندروید با جاوا - مهندس سید وحید هاشمی
 
Network management 2_sample
Network management 2_sampleNetwork management 2_sample
Network management 2_sample
 

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

  • 1. Design Patterns ‫خورد؟‬ ‫می‬ ‫دردی‬ ‫چه‬ ‫به‬ ‫و‬ ‫چیست‬ ‫تهرانی‬ ‫مسیح‬ ‫محمود‬ :‫تحریر‬ ‫به‬ . @ .Mahmud tehrani gmail com :// .http masihtehrani ir
  • 2. Desgin Pattern‫؟‬ ‫چیست‬ ‫توسط‬ ‫قبل‬ ‫که‬ ‫نویسی‬ ‫برنامه‬ ‫دنیای‬ ‫متداول‬ ‫مسایل‬ ‫الگوهایی‬ ‫شکل‬ ‫به‬ ‫و‬ ،‫طراحی‬ ‫بهینه‬ ‫بصورت‬ ‫افرادی‬ .‫اند‬ ‫شده‬ ‫بندی‬ ‫دسته‬ ‫استاندارد‬ ‫با‬ ‫دیگران‬ ‫که‬ ‫چرخی‬ ‫نیستید‬ ‫مجبور‬ ‫دیگر‬ ‫شما‬ ‫واقع‬ ‫در‬ .‫کنید‬ ‫اختراع‬ ‫دوباره‬ ‫رو‬ ‫کردند‬ ‫اختراع‬ ‫مشقت‬ : ‫دیگر‬ ‫تعبیری‬ ‫به‬ ‫که‬ ‫کسی‬OOP‫که‬ ‫ست‬ ‫کسی‬ ‫مثل‬ ‫میدونه‬ ‫خوب‬ ‫رو‬ ‫اما‬ ‫میشناسه؛‬ ‫رو‬ ‫کیک‬ ‫یک‬ ‫ی‬ ‫دهنده‬ ‫تشکیل‬ ‫اجزای‬ ) ‫طراحی‬ ‫الگوهای‬ ‫که‬ ‫کسی‬Design Patternas‫رو‬ ( ‫اختیار‬ ‫در‬ ‫هم‬ ‫رو‬ ‫کیک‬ ‫اون‬ ‫دقیق‬ ‫پخت‬ ‫دستور‬ ‫میدونه‬ .‫داره‬ ‫خوشمزه‬ ‫و‬ ‫یکدست‬ ‫همیشه‬ ‫اول‬ ‫نفر‬ ‫کیک‬ : ‫نتیجه‬
  • 3. ‫نویسی‬ ‫برنامه‬ ‫و‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫در‬ !‫همینطوره‬ ‫هم‬ ‫نویسی‬ ‫کد‬ ‫چطور‬ ‫رو‬ ‫مسئله‬ ‫یک‬ ‫گن‬ ‫می‬ ‫شما‬ ‫به‬ ‫ها‬ ‫الگو‬ ‫و‬ ‫باشه‬ ‫مهندسی‬ ‫های‬ ‫خاصیت‬ ‫دارای‬ ‫کدتون‬ ‫تا‬ ‫کنید‬ .‫باشه‬ ‫نداشته‬ ‫رو‬ ‫کیفیت‬ ‫بی‬ ‫یا‬ ‫اسپاگتی‬ ‫کد‬ ‫یک‬ ‫مشکلت‬ ‫یک‬ ‫تحت‬ "‫روشن‬ ‫مسئله‬ ‫"یک‬ ‫برای‬ ‫کلی‬ ‫طور‬ ‫به‬ ‫ها‬ ‫الگو‬ .‫دهند‬ ‫می‬ ‫ارایه‬ ‫حل‬ ‫راه‬ ‫یک‬ "‫مشخص‬ ‫"شرایط‬ ‫شی‬ ‫در‬ ‫توانی‬ ‫می‬ ‫چطور‬ ‫بدانیی‬ ‫خواهی‬ ‫می‬ ‫شما‬ ‫مثل‬ ‫محدود‬ ‫و‬ ‫کنترل‬ ‫رو‬ ‫خاص‬ ‫کل س‬ ‫یک‬ ‫از‬ ‫شی‬ ‫ایجاد‬ ‫گرایی‬ ‫نام‬ ‫به‬ ‫هست‬ ‫الگویی‬ ‫کار‬ ‫این‬ ‫برای‬ ‫کنی!؟‬Singleton ‫این‬ ‫حل‬ ‫برای‬ ‫روش‬ ‫بهترین‬ ‫که‬ ‫شده‬ ‫اثبات‬ ‫همه‬ ‫به‬ ‫که‬ ‫نیست‬ ‫لزم‬ ‫شما‬ ‫دیگه‬ ‫الگو‬ ‫این‬ ‫وجود‬ ‫با‬ .‫است‬ ‫مسئله‬ !!!‫کنی‬ ‫حل‬ ‫خودت‬ ‫روش‬ ‫از‬ ‫رو‬ ‫مسئله‬ ‫خودت‬
  • 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. Creational patterns (‫اشیاء‬ ‫ایجاد‬ ‫های‬‫)روش‬  Abstract factory  Factory method  Builder  Prototype  Singleton
  • 6. Structural patterns (‫ها‬‫کل س‬ ‫و‬ ‫اشیاء‬ ‫ترکیب‬ ‫)چگونگی‬  Adapter  Bridge  Composite  Decorator  Facade  Flyweight  Proxy
  • 7. Behavioral patterns (‫یکدیگر‬ ‫با‬ ‫اشیاء‬ ‫ارتباط‬ ‫روی‬ ‫)تمرکز‬  Chain of responsibility  Command  Interpreter  Iterator  Mediator  Memento  Observer  State  Strategy  Template method  Visitor
  • 8. Singleton Pattern  ‫این‬pattern‫الگوهای‬ ‫بندی‬ ‫طبقه‬ ‫در‬Creational ‫دارد‬ ‫جای‬  :‫هدف‬ ‫ایجاد‬ ‫نمونه‬ ‫یک‬ ‫فقط‬ ‫ما‬ ‫کل س‬ ‫از‬ ‫اینکه‬ ‫از‬ ‫اطمینان‬ ‫برای‬ .‫است‬ ‫شده‬ ‫کل س‬ ‫از‬ ‫نمونه‬ ‫ایجاد‬ ‫کردن‬ ‫محدود‬ ‫برای‬
  • 9. ‫راه‬ ‫آسانترین‬ ‫کل س‬ ‫داخل‬ ‫استاتیک‬ ‫متغییر‬ ‫یک‬ ‫ایجاد‬ True‫نمونه‬ ‫اولین‬ ‫تولید‬ ‫صورت‬ ‫در‬ ‫متغییر‬ ‫دادن‬ ‫قرار‬ ‫صورت‬ ‫این‬ ‫غیر‬ ‫در‬False.‫دهیم‬‫می‬ ‫قرار‬
  • 12. ‫متغییر‬ ‫تعریف‬ **/ * @var Singleton reference to singleton instance /* $private static instance;
  • 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. Private construct **/ *:is not allowed to call from outside private! * /* __private function construct() } {
  • 15. Private clone **/ *prevent the instance from being cloned * * @return void /* __private function clone() } {
  • 16. Private wakeup **/ *prevent from being unserialized * * @return void /* __private function wakeup() } {
  • 17. ‫کاربرد‬Singleton  ‫به‬ ‫باز‬ ‫کانکشن‬ ‫یک‬ ‫فقط‬ ‫و‬ ‫دیتابیس)فقط‬ ‫تو‬ ‫کانکشن‬ (‫باشیم‬ ‫داشته‬ ‫دیتابیس‬  ‫فقط‬ ‫ما‬ ‫ولی‬ ‫شود‬‫می‬ ‫داده‬ ‫بازگشت‬ ‫بارها‬ ‫ل گ‬ ‫ل گ)یک‬ (‫خواهیم‬‫می‬ ‫را‬ ‫آن‬ ‫بار‬ ‫یک‬  ‫سیستم‬ ‫فایل‬ ‫به‬ ‫مربوط‬ ‫برنامه)این‬ ‫فایل‬ ‫ل ک‬ (.‫باشد‬‫می‬
  • 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. ‫دیتابیس‬ ‫از‬ ‫استفاده‬ ‫اول‬ ‫مثال‬ ' . .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. ‫دیتابیس‬ ‫از‬ ‫استفاده‬ ‫دوم‬ ‫مثال‬ $= ::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'" ;'('.