اما بعد.
بهتره با یه تاریخچه مختصر از سبکهای برنامه نویسی شروع کنیم.
1. برنامه نویسی سنتی: در برنامه نویسی سنتی (که معمولا در سطح ماشین انجام میشد) هر برنامه شامل یک سری دستورات انتساب، پرشهای ساده و یا شرطی میشد. در حقیقت کدهایی هم که هم اکنون می نویسیم در آخر به چنین دستوراتی ترجمه میشوند.
فرض کنید می خواهید یک برنامه سنتی بنوسید. برای اینکار سعی کنید فقط از کلمات کلیدی زیر استفاده کنید:
program
var
begin,end فقط یکیار در ابتدا و انتهای برنامه.
if
:=
goto
label
در این صورت شما احتمالا یک برنامه سنتی نوشته اید.
2. برنامه نویسی ساخت یافته: در برنامه نویسی ساخت یافته 3 فرایند همزمان اتفاق افتاد. قبل از اینکه به فرایندها بپردازم باید بگویم که پیشرفت این 3 فرایند بسیار تدریجی بود (و نه اینکه امشب یکی بخوابه و از فردا صبحش ساخت یافته برنامه بنویسه).
اما این 3 فرایند:
الف) ساختیافتگی کد: یادمه وقتی اولین بار از basic سراغ پاسکال اومدم،استادم بهم گفت اینجا از همه چیز میتونی استفاده کنی به غیر از goto! (الان من 9 ساله از این دستور استفاده نکرده ام!) عیب کار هم خیلی واضح بود: با بزرگ شدن برنامه ها تعداد gotoها هم زیاد میشد، تا جایی که واقعا نمیشد شخص ثالثی برنامه را بخواند و بفهمد. بنابر این این ایده قوت گرفت که به جای استفاده از دستورات goto نامفهوم از دستوراتی مانند while, for که خوانایی بیشتری به برنامه ها می دهند استفاده شود. (به نقل از حاج کامبیز: در کل پیاده سازی جاوا فقط 1 جا از دستور goto استفاده شده: در آن یک مورد استثنائا کد خواناتر میشده)
ب) کپسوله کردن کد:این قسمت شاید مهمترین ایده برنامه نویسی ساختیافته بوده است. برنامه نویسان همیشه میخواسته اند که اولا در یک برنامه کد تکراری نداشته باشند و در ثانی کدی را که یکبار نوشتهاند در برنامه های مختلف به کار گیرند: کپسوله کردن کد این امکان را به شما می دهد.
کپسوله کردن کد در واقع همان نوشتن کد مرتبط در یک بخش از برنامه به نام روتین (=فانکشن) و سپس فراخوانی آن می باشد.
ج) کپسوله کردن داده: استفاده از یک مثال شاید گویاترین راه باشه. فرض کنید میخواهید شماره یک دانشآموز، قد، وزن و معدل او را در حافظه نگهداری کنید. فکر میکنید استفاده از کدام 2 ساختار زیر راحتتر باشد؟
var
StdInfo:array[1..4] of real;
یا
type
TStudInfo=record
Number:integer;
Average,Height,Weight:real;
end;
var
StudInfo:TStudInfo;
روش اول کلاسیک و روش دوم ساختیافته است.
3. برنامه نویسی شیئگرا: در این سبک برنامه نویسی ایده کلی آنست که کد وداده با معرفی مفهوم شیئ یکجا کپسوله شوند. توضیحات بیشتر در مورد این سبک موضوع مقالات بعدی خواهد بود.