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:
کاهش پیچیدگی سیستمها
افزایش قابلیت نگهداری (Maintainability)
افزایش خوانایی (Readability)
جلوگیری از تکرار کد (DRY Principle)
تفاوت Abstraction با Encapsulation:
Encapsulation یعنی پنهان کردن دادهها (مثلاً متغیرهای خصوصی)
Abstraction یعنی پنهان کردن جزئیات پیادهسازی (منطق و فرآیندها)