एक चीज़ के बारे में सोचें। कोई चीज, एक चीज जो आप सामान करना चाहते हैं। कहो, नाश्ता
(सभी कोड स्यूडोकोड, किसी भी भाषा में रहने वाले के साथ कोई समानता, मृत, या चिकित्सकीय बैंकिंग उद्योग में दुरुपयोग किया जा रहा है पूरी तरह से संयोग और PHP कुछ भी नहीं अपनी पोस्ट के साथ क्या करना टैग किया जा रहा है)
तो तुम एक टेम्पलेट को परिभाषित आप कैसे नाश्ते का प्रतिनिधित्व करेंगे। यह एक वर्ग है:
class Breakfast {
}
नाश्ते में गुण होते हैं। सामान्य गैर वस्तु उन्मुख सामान में, आप इस के लिए एक सरणी का उपयोग हो सकता है:
$breakfast = array(
'toast_slices' => 2,
'eggs' => 2,
'egg_type' => 'fried',
'beans' => 'Hell yeah',
'bacon_rashers' => 3
);
और तुम इसके साथ नगण्य के लिए विभिन्न कार्यों होगा:
function does_user_want_beans($breakfast){
if (isset($breakfast['beans']) && $breakfast['beans'] != 'Hell no'){
return true;
}
return false;
}
और आप एक गड़बड़ मिल गया है , न सिर्फ बीन्स की वजह से। आपके पास डेटा संरचना है कि प्रोग्रामर इच्छाशक्ति के साथ स्क्रू कर सकते हैं, नाश्ते के साथ पूरी तरह से डेटा की परिभाषा से तलाक के साथ कार्यों का एक विस्तारित संग्रह। बजाय, आप यह कर सकता है:
$users = fetch_list_of_users();
foreach ($users as $user){
// So this creates an instance of the Breakfast template we defined above
$breakfast = new Breakfast();
if ($user->likesBacon){
$breakfast->moar_magic_pig(4);
}
// If you find a PECL module that does this, Email me.
$breakfast->cook();
}
मैं इस क्लीनर लग रहा है लगता है, और धब्बे का प्रतिनिधित्व करने के एक दूर neater तरीका:
class Breakfast {
var $toast_slices = 2;
var $eggs = 2;
var $egg_type = 'fried';
var $beans = 'Hell yeah';
var $bacon_rashers = 3;
function wants_beans(){
if (isset($this->beans) && $this->beans != 'Hell no'){
return true;
}
return true;
}
function moar_magic_pig($amount = 1){
$this->bacon += $amount;
}
function cook(){
breakfast_cook($this);
}
}
और फिर नाश्ता के कार्यक्रम के विचार से छेड़छाड़ एक बहुत क्लीनर बन जाता है डेटा हम एक सतत वस्तु के रूप में इलाज करना चाहते हैं।
ओओ वास्तव में क्या है, और यह अकादमिक रूप से बेहतर क्यों है, इसके बेहतर स्पष्टीकरण हैं, लेकिन यह मेरा व्यावहारिक कारण है, और इसमें बेकन शामिल है। xtofl.myopenid.com ^^^^
आप पैटर्न के प्रयोजनों के समझ में नहीं आता है, तो अपने वास्तव में नहीं उनकी पूर्णता के साथ वस्तुओं का उपयोग करने जा:
मुझे पता है कि आपका क्या मतलब है ... बस बहुत कुछ पढ़ें और इसमें खुद को विसर्जित करें और यह धीरे-धीरे आ जाएगा लेकिन – alex
नम्रता के लिए +1 – FastAl
यह भी देखें: http://stackoverflow.com/questions/1530868/सरल-स्पष्टीकरण-php-oop-vs-processural – dreftymac