شیء گرایی و ارتباط با برنامه

امروز راجع به یکی از تفاوت‌های برنامه نویسی ساخت یافته و شیء گرا می‌نویسم . چند وقت پیش کدی رو دیدم که برنامه‌نویسش ادعا می کرد به شدت object oriented هست و همه چیز در قالب همون class و object و غره و ذلک تعریف شده و استفاده میشه . کدش رو که نگاه کردم اول کمی تعجب کردم ، این دوستی که می گم یه دو – سه سالی برنامه می نوشت و قاعدتا می بایست مفاهیم شیء گرایی  رو خوب می دونست بخصوص که با زبانی مثل سی شارپ کد می نوشت . کار برنامه این بود که از ورودی یک سری اطلاعات می گرفت و با یکسری محاسبات که در یک کلاس دیگه صورت می گرفت یک خروجی به کاربر داده میشد .

به نظر شما این کار یعنی شیء گرایی ؟ اصولا یک برنامه شیء گرا باید و باید و باید و اصولا از لازمه های یک برنامه شیء گرا آن است که برنامه نویس بتواند با برنامه حرف بزند . چون اصولا برنامه (‌ در یک محیط شیء گرا ) یک آبجکت زنده است و برنامه نویس به راحتی قادر خواهد بود با آن ارتباط برقرار کند . در زیر نمونه بسیار ساده ای از یک کد ساخت یافته و یک کد شیء گرا را می آورم که تفاوت کاملا مشخص شود .

این برنامه console قرار است دو عدد از ورودی بگیرد و عدد دوم را از عدد اول کم کند ( ‌تفریق ) : از اینجا می توانید کد زیر را دانلود کنید . البته این رو هم اضافه کنم که بخاطر نوشتن کد زیر و قرار دادن صحیح اون در وردپرس مجبور شدم قالب وبلاگ رو عوض کنم .

namespace SimpleSub

{

   class Program

   {

      static void Main(string[] args)

      {

         int first = int.Parse(Console.ReadLine());

         int second = int.Parse(Console.ReadLine());

         Operation op = new Operation(first);

         op.StructuralSub(first , second);

         Console.WriteLine(“Object Oriented Result : {0} “,op.ObjectOrientedSub(second));

      }

   }

}

 

namespace SimpleSub
{
   class Operation
   {
      int ooFirst;
      public Operation(int first)
      {
         ooFirst = first;
      }
      public void StructuralSub(int first, int second)
      {
         Console.WriteLine(“Structural Result : {0} “, first second);
      }
      public int ObjectOrientedSub(int second)
      {
         return this.ooFirst second;
      }
   }
}

 


در مثال بالا در کلاس Program دو ورودی دریافت می شود ، و به دو روش این دو ورودی در اختیار کلاس operation قرار می گیرند :‌روش اول صدا کردن method ی با نام StructuralSub است که در این روش دو ورودی دریافت شده در اختیار متد قرار گرفته و خروجی با محاسبه عمل تفریق ، نمایش داده می شود . در این حالت هیچ استفاده ای از constructor کلای operation و مقدار دریافتی آن نشده است .

اما در مثال دوم وقتی که کاربر دو ورودی را به برنامه می دهد ، هنگامی که کلاس operation ایجاد می شود ، constructor آن یک ورودی می گیرد و در واقع با این کار به برنامه نویس و یا هر چیز دیگری می فهماند که من در حال حاضر این مقدار خاص هستم ، مثلا من operation هستم با لباس ورودی first پس از آن‌، هنگامی که mrthod ی با نام ObjectOrientedSub صدا زده می شود فقط مقدار دوم به آن داده می شود و در واقع با این کار برنامه نویس به این متد می گوید که روال ObjectOrientedSub مقدار Second را از خودت کم کن .

در واقع کاری که برنامه نویس در شیءگرا انجام می دهد ، ایجاد ارتباط با برنامه است ، و در واقع با نوشتن هر خط از برنامه ، در حال برقراری ارتباط کاملا مفهومی و کلامی با برنامه است ،‌در غیر این صورت می توان گفت که برنامه ساخت یافته ما فقط در ساختار کلاس مرتبط شده است .

نظر شما چیه ؟

One Response to شیء گرایی و ارتباط با برنامه

  1. سروش says:

    خوب بود. ممنون

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: