منبع: chatgpt
اصول برنامهنویسی شیءگرا (OOP) چهار اصل اساسی دارد: Encapsulation, Abstraction, Inheritance, و Polymorphism. این اصول به توسعهی نرمافزارهای پیچیده به روشی سادهتر و قابل مدیریت کمک میکنند.
1. Encapsulation (کپسولهسازی)
Encapsulation به معنای مخفی کردن جزئیات پیادهسازی یک شیء است و فقط متدها و ویژگیهایی که برای کار با شیء ضروری هستند، به بیرون نمایش داده میشوند. این کار با استفاده از دسترسیدهندهها مانند private
و public
انجام میشود.
مثال:
class User {
private $name;
public function setName($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
}
$user = new User();
$user->setName("John");
echo $user->getName(); // خروجی: John
در اینجا خاصیت $name
مخفی شده و فقط از طریق متدهای setName
و getName
قابل دسترسی است.
2. Abstraction (انتزاع)
Abstraction به معنای مخفی کردن پیچیدگیهای داخلی و نمایش فقط جزئیات ضروری است. این اصل از طریق تعریف اینترفیسها یا کلاسهای abstract پیادهسازی میشود.
مثال:
abstract class Animal {
abstract public function sound();
}
class Dog extends Animal {
public function sound() {
return "Bark";
}
}
class Cat extends Animal {
public function sound() {
return "Meow";
}
}
$dog = new Dog();
echo $dog->sound(); // خروجی: Bark
در اینجا جزئیات صدای هر حیوان در کلاسهای فرزند پیادهسازی شده و پیچیدگیهای دیگر پنهان مانده است.
3. Inheritance (وراثت)
Inheritance به معنای استفاده مجدد از کد با به ارث بردن ویژگیها و متدهای یک کلاس در کلاس دیگری است. این امر به کاهش تکرار کد کمک میکند.
مثال:
class Animal {
public function eat() {
return "Eating...";
}
}
class Dog extends Animal {
public function bark() {
return "Barking...";
}
}
$dog = new Dog();
echo $dog->eat(); // خروجی: Eating...
echo $dog->bark(); // خروجی: Barking...
کلاس Dog
ویژگیها و رفتارهای کلاس Animal
را به ارث برده است و میتواند از متد eat
استفاده کند.
4. Polymorphism (چندریختی)
Polymorphism به این معناست که یک متد میتواند در کلاسهای مختلف به روشهای متفاوت پیادهسازی شود. این اصل امکان ایجاد انعطافپذیری در کد را فراهم میکند.
مثال:
interface Shape {
public function area();
}
class Circle implements Shape {
private $radius;
public function __construct($radius) {
$this->radius = $radius;
}
public function area() {
return pi() * pow($this->radius, 2);
}
}
class Rectangle implements Shape {
private $width, $height;
public function __construct($width, $height) {
$this->width = $width;
$this->height = $height;
}
public function area() {
return $this->width * $this->height;
}
}
$circle = new Circle(5);
echo $circle->area(); // خروجی: مساحت دایره
$rectangle = new Rectangle(4, 5);
echo $rectangle->area(); // خروجی: مساحت مستطیل
هر کلاس پیادهسازی خود را از متد area
دارد، که به صورت متفاوت برای دایره و مستطیل محاسبه میشود.
این چهار اصل به توسعهی نرمافزارهایی کمک میکنند که قابل نگهداری و توسعهپذیرتر هستند.
دیدگاهتان را بنویسید