Abstraction

انتزاع / ساده‌سازی

Abstraction یعنی پنهان کردن جزئیات غیرضروری و فقط نشان دادن بخش‌هایی که برای استفاده‌کننده مهم هستند. به زبان ساده‌تر: شما پیچیدگی‌ها را می‌پوشانید تا استفاده از یک سیستم راحت‌تر و واضح‌تر شود.

مثال ساده: فرض کنید از یک ماشین استفاده می‌کنید. وقتی دکمه‌ی استارت را فشار می‌دهید، ماشین روشن می‌شود — ولی لازم نیست بدانید دقیقاً جریان برق چطور وارد استارتر می‌شود، موتور چطور کار می‌کند، یا سیستم سوخت‌رسانی چیست. این یعنی abstraction.

در کدنویسی هم دقیقاً همینطور است: شما یک تابع یا کلاس می‌نویسید تا بخش‌های پیچیده‌ی درونیش مخفی بماند و فقط یک رابط ساده به کاربر دهد.

مثال در برنامه‌نویسی (Python)

class Car:
    def __init__(self):
        self.__engine_started = False

    def start(self):
        self.__engine_started = True
        print("Car started!")

my_car = Car()
my_car.start()

در این مثال، متد start() یک abstraction از فرآیند پیچیده‌ی روشن کردن موتور ماشین است. کسی که از کلاس Car استفاده می‌کند نیازی ندارد بداند درونش چه اتفاقی می‌افتد — فقط کافیست متد start() را صدا بزند.

اهداف Abstraction:

  1. کاهش پیچیدگی سیستم‌ها

  2. افزایش قابلیت نگهداری (Maintainability)

  3. افزایش خوانایی (Readability)

  4. جلوگیری از تکرار کد (DRY Principle)

تفاوت Abstraction با Encapsulation:

  • Encapsulation یعنی پنهان کردن داده‌ها (مثلاً متغیرهای خصوصی)

  • Abstraction یعنی پنهان کردن جزئیات پیاده‌سازی (منطق و فرآیندها)

 
به بالا بروید