অবজেক্ট অরিয়েন্টেড পিএইচপি-->OOPHP-৯

OOPHP-৯:: মেথড Overriding.অংশ-৩
কখনও আপনার বেস ক্লাসের মেথডে একসেস নেয়া লাগতে পারে,যেই মেথডটা বেস ক্লাসের কোন প্রদিপাদিত ক্লাসে (এটাকে child ক্লাসও বলে) override করেছেন।
নিচের উদাহরনে আমরা employee  ক্লাসে set_name() মেথডটা override করেছি এখন আমরা কোড এভাবে লিখব
people::set_name($new_name);
এতে parent  ক্লাসের (People) set_name() মেথডে আমরা একসেস নিতে পারব।
01.<?php
02.class people {
03.// explicitly adding class properties
04.are optional - but is good practice
05.var $name;
06.function __construct($people_name) {
07.$this->name = $people_name;
08.}
09.public function get_name() {
10.return $this->name;
11.}
12.//protected methods and properties
13.restrict access to those elements.
14.protected function set_name($new_name) {
15.if (name != "Jimmy Two Guns") {
16.$this->name = strtoupper($new_name);
17.}
18.}
19.}
20.// 'extends' is the keyword
21.that enables inheritance
22.class employee extends people {
23.protected function set_name($new_name) {
24.if ($new_name == "Stefan Sucks") {
25.$this->name = $new_name;
26.}
27.else if($new_name == "Anjirul  Alam") {
28.people::set_name($new_name);
29.}
30.}
31.function __construct($employee_name) {
32.$this->set_name($employee_name);
33.}
34.}
35.?>

ধাপ-২৩:

মেথড overriding অংশ-৩

'people::set_name()' এটি পিএইচপি ইন্জিনকে বলে যে তুমি people ক্লাসে set_name() মেথডটা খুজে বের কর।
আরেকটা শর্টকাট পদ্ধতি আছে যেখানে আপনি parent কিওয়ার্ডটি ব্যবহার করে বর্তমান ক্লাসের parent  ক্লাস (বেস  ক্লাসকে parent ক্লাস বলা যায়) কে নির্দেশ করে দিতে পারেন।
01.<?php
02.class people {
03.// explicitly adding class properties
04.are optional - but is good practice
05.var $name;
06.function __construct($people_name) {
07.$this->name = $people_name;
08.}
09.public function get_name() {
10.return $this->name;
11.}
12.//protected methods and properties
13.restrict access to those elements.
14.protected function set_name($new_name) {
15.if (name != "Jimmy Two Guns") {
16.$this->name = strtoupper($new_name);
17.}
18.}
19.}
20.// 'extends' is the keyword that enables inheritance
21.class employee extends people {
22.protected function set_name($new_name) {
23.if ($new_name == "Stefan Sucks") {
24.$this->name = $new_name;
25.}
26.else if($new_name == "Anjirul Alam") {
27.parent::set_name($new_name);
28.}
29.}
30.function __construct($employee_name) {
31.$this->set_name($employee_name);
32.}
33.}
34.?>

শেষ কথা:

অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং এর একদম মৌলিক বিষয়াদি আপনি শিখে গেলেন।এবার OOPHP এর জগতে সামনে আগানো আপনার জন্য অনেক সহজ হয়ে গেল।এখন OOP তে আপনার দক্ষতা বৃদ্ধির জন্য একটা পরামর্শ দিতে পারি তাহল এরকম কোড বারবার লেখেন,কোড লিখে মজা করতে পারেন।যেমন নতুন নতুন অবজেক্ট তৈরী করুন আবার এসব দিয়ে বিভিন্ন ধরনের কাজ করার চেষ্টা করুন।এধরনের ৮/১০ টি কোড তৈরী করুন এতে করে দেখবেন অবজেক্ট আর ক্লাসের ব্যাপারগুলি কত সহজ হয়ে গেছে আপনার কাছে।

OOP এবং আপনার প্রোগ্রামিং ক্যারিয়ার

অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং সফটওয়ার তৈরীর একটা আধুনিক পদ্ধতি।অধিকাংশ ল্যাংগুয়েজ এখন এই মেথড ব্যবহার করছে।যেমন জাভা,পিএইচপি,রুবি,সি++ ইত্যাদি।
যেহেতু সফটওয়ার তৈরীর ল্যাংগুয়েজ গুলি অবজেক্ট অরিয়েন্টেড তাই এটা শিখলে আপনি যেকোন সময় ঐসব ল্যাংগুয়েজ এ সুইচ করতে পারবেন।যদিও বর্তমানে ডেস্কটপ বেসড এপ্লিকেশন ডেভেলপারদের (সফটওয়ার ডেভেলপার) চেয়ে ওয়েব বেসড এপ্লিকেশন ডেভেলপাররা (ওয়েব ডেভেলপার) বেশি পকেট ভরছে।যাইহোক OOP এর ব্যাপারে শেষ যে উপকারটির কথা বলব তাহল যখন আপনি অবজেক্ট অরিয়েন্টেড পিএইচপি কোড লিখবেন তখন পরবর্তীতে ঐ কোড মেইনটেইন এবং আপডেট করা সহজ হবে।
আর একটা কথা এবং এটাই শেষ,আপনি যখন বড় কোন পিএইচপি প্রোজেক্টে কাজ করবেন প্রথম অবস্থায় এটা আপনার জন্য একটা চ্যালেন্জ হয়ে দাড়াবে কারন আপনাকে ভিন্ন একটা রাস্তায় চিন্তা করতে হবে।পুরো প্রোজেক্ট টা আপনাকে অবজেক্ট কেন্দ্রিক করে আপনার ধারনাতে আনতে হবে।এজন্য অবজেক্ট বেসড প্রোজেক্ট ডেভেলপ করার সময় আগে নকশা বা ডায়াগ্রাম আঁকুন।ডায়াগ্রাম আঁকার কিছু টিপস-
Ø  পেনসিল ও কাগজ ব্যবহার করুন।
Ø  প্রতিটি অবজেক্টকে রিপ্রেজেন্ট করার জন্য বাক্স আকুন
Ø  এই বাক্সগুলোতে মেথড এবং properties এর তালিকা তৈরী করুন
Ø  অ্যারো এবং রেখা ব্যবহার করুন অবজেক্টগুলির মধ্যে সম্পর্ক বোঝাতে (parent-child/base-derived)

কোন মন্তব্য নেই

Blogger দ্বারা পরিচালিত.