subscriptionsدوره آموزش مبانی و مفاهیم شی گرایی (مستقل از زبان برنامه نویسی)

۰ رای ۰.۰

access_time طول دوره۱۵ ساعت
event_seat تعداد جلسات۲۸ جلسه
people دانشجویان۶۱۳ نفر
headset_mic پشتیبانی دوره۳ ماه

قیمت : ۱۱۵ هزار تومان

schedule بیش از 15 ساعت محتوای آموزشی - شروع دوره : 10 آذر
list جلسات description توضیحات دوره speaker_notes دیدگاه ها
list لیست جلسات دوره
  1. دوره مفاهیم شی گرایی (فصل 1 - جلسه 1) : مقدمات و مدرس دوره play_circle_outlined
  2. دوره مفاهیم شی گرایی (فصل 1 - جلسه 2) : مقدمه ای بر روش های مختلف برنامه نویسی play_circle_outlined
  3. دوره مفاهیم شی گرایی (فصل 1 - جلسه 3) : سطوح و مترجم های زبان های برنامه نویسی play_circle_outlined
  4. دوره مفاهیم شی گرایی (فصل 1 - جلسه 4) : شیوه های برنامه نویسی - زبان ماشین و اسمبلی play_circle_outlined
  5. دوره مفاهیم شی گرایی (فصل 1 - جلسه 5) : شیوه های برنامه نویسی - زبان های دستوری، ساختاری و رویه ای play_circle_outlined
  6. دوره مفاهیم شی گرایی (فصل 1 - جلسه 6) : شیوه های برنامه نویسی - زبان های اعلانی، برنامه نویسی تابعی play_circle_outlined
  7. دوره مفاهیم شی گرایی (فصل 1 - جلسه 7) : شیوه های برنامه نویسی - برنامه نویسی رویداد-محور و زمان-محور play_circle_outlined
  8. دوره مفاهیم شی گرایی (فصل 1 - جلسه 8) : شیوه های برنامه نویسی - برنامه نویسی شی گرا - OOP play_circle_outlined
  9. دوره مفاهیم شی گرایی (فصل 1 - جلسه 9) : مقایسه و دسته بندی زبان های برنامه نویسی play_circle_outlined
  10. دوره مفاهیم شی گرایی (فصل 2 - جلسه 1) : کلاس ها، اشیاء و نمونه سازی play_circle_outlined
  11. دوره مفاهیم شی گرایی (فصل 2 - جلسه 2) : اعضای کلاس - ویژگی ها و متد ها play_circle_outlined
  12. دوره مفاهیم شی گرایی (فصل 2 - جلسه 3) : Access Modifier ها و تعین دسترسی اعضای کلاس ها play_circle_outlined
  13. دوره مفاهیم شی گرایی (فصل 2 - جلسه 4) : متدهای سازنده و مخرب - constructor and destructor play_circle_outlined
  14. دوره مفاهیم شی گرایی (فصل 2 - جلسه 5) : آشنایی با ارث بری - Inheritance play_circle_outlined
  15. دوره مفاهیم شی گرایی (فصل 2 - جلسه 6) : روابط بین اشیاء Association, Aggregation, Composition play_circle_outlined
  16. دوره مفاهیم شی گرایی (فصل 2 - جلسه 7) : متدهای getter و setter و مفهوم Data Encapsulation play_circle_outlined
  17. دوره مفاهیم شی گرایی (فصل 2 - جلسه 8) : کیورد static و اعضای کلاس play_circle_outlined
  18. دوره مفاهیم شی گرایی (فصل 2 - جلسه 9) : کیورد final و کاربرد آن play_circle_outlined
  19. دوره مفاهیم شی گرایی (فصل 2 - جلسه 10) : Method Overriding چیست ؟ play_circle_outlined
  20. دوره مفاهیم شی گرایی (فصل 2 - جلسه 11) : Method Overloading چیست ؟ play_circle_outlined
  21. دوره مفاهیم شی گرایی (فصل 2 - جلسه 12) : Method Signature و متد های Abstract play_circle_outlined
  22. دوره مفاهیم شی گرایی (فصل 2 - جلسه 13) : آشنایی با مفهوم Abstract classes play_circle_outlined
  23. دوره مفاهیم شی گرایی (فصل 2 - جلسه 14) : آشنایی با اینترفیس ها : قراردادهای شی گرایی play_circle_outlined
  24. دوره مفاهیم شی گرایی (فصل 3 - جلسه 1) : الگوهای طراحی - آشنایی با مبانی و مفهوم الگوهای طراحی play_circle_outlined
  25. دوره مفاهیم شی گرایی (فصل 3 - جلسه 2) : الگوی طراحی Singleton (سینگلتون) play_circle_outlined
  26. دوره مفاهیم شی گرایی (فصل 3 - جلسه 3) : الگوی طراحی Factory (فکتوری) play_circle_outlined
  27. دوره مفاهیم شی گرایی (فصل 3 - جلسه 4) : الگوی طراحی Adapter (آداپتر) play_circle_outlined
  28. دوره مفاهیم شی گرایی (فصل 3 - جلسه 5) : الگوی طراحی Strategy یا Policy (استراتژی) play_circle_outlined
  29. دوره مفاهیم شی گرایی (فصل 4) : چهار اصل مهم برنامه نویسی شی گرا play_circle_outlined

دوره مفاهیم شی گرایی

شئ گرایی!!! واژه ای که خیلی ها از اون می ترسن! برنامه نویسای خیلی زیادی وجود دارن که سال هاست کد میزنن ولی سراغ شی گرایی نمی رن. گویا شی گرایی یه غول بی شاخ و دم هست که اگر به سمتش برن و نزدیکش بشن ناک اوت میشن! یادمه اولین باری که خودم با شی گرایی روبرو شدم چه ذهنیت مبهمی داشتم! ترم 3 دانشگاه بود که شروع کردیم به جاوا کار کردن و تقریبا آخرای ترم بود که تازه فهمیدیم شی گرایی چی هست و چقدر می تونه لذت بخش باشه! مفاهیم انتزاعی توی شی گرایی تقریبا زیاده ولی خوب این روش برنامه نویسی خوبیش اینه که به شدت به دنیای واقعی نزدیکه. شما به جای سر و کله زدن با متغیرها و توابع مستقیما با اشیاء کار می کنید و در ارتباطید و این دقیقا همون چیزیه که ما در دنیای واقعی داریم. پس می تونید این شکلی بهش نگاه کنید. می خوایم دقیقا مشابه دنیای واقعی و ارتباط موجودات و اشیاء درون اون کد بزنیم. هدف شی گرایی از اول همین بوده و کدنویسی به این روش باعث میشه خیلی راحتتر کدهاتون رو مدیریت و نگهداری کنید، ازکدهاتون تو پروژه های مختلف استفاده کنید. برنامه های بزرگ و سازمانی رو خیلی بهتر بنویسید و درگیر مشکلات و پیچیدگی های برنامه نویسی رویه ای برای پروژه های بزرگ نشید! با من، لقمان آوند، همراه باشید تا این غولی که از شئ گرایی ساخته شده رو به زمین بزنیم !

:: سرفصل های دوره مبانی و مفاهیم برنامه نویسی شئ گرا

الگوهای مختلف برنامه نویسی در طول زمان (Programming Paradigms)

اصطلاحات و مبانی برنامه نویسی شی گرا (OOP Basic Concepts)

اصول برنامه نویسی شی گرا (OOP Principles)

مدل سازی و طراحی شی گرا (Object Oriented Design and Modeling)

اصول طراحی شی گرا (S.O.L.I.D Principles)

:: شی گرایی را در زبان های برنامه نویسی مختلف به صورت عملی ببینید :

پروژه ۱ (PHP) : پیاده سازی یک کتابخانه مفید برای کار با پایگاه داده با زبان PHP

پروژه ۲ (Java) : پیاده سازی بازی دوز (Tic-Tac-Toe) با زبان جاوا

پروژه ۳ (Python) : پیاده سازی یک دفترچه تلفن برای ثبت اطلاعات مخاطبین با پایتون

امیرمحمد رضائی

سلام چرا در داخل متد main نمیشه ویژگی پاپلیک یا پرایویت تعریف کرد و خطا میگیره

    public static void main(String[] args) {
    }
لقمان آوند

سلام
پراپرتی ها و access modifier ها داخل متد ها قابل تعریف نیستند. شما باید اونها رو مستقیما در بلاک مربوط به کلاس تعریف کنید. متغیر های درون متد ها دسترسی محلی دارند و فقط در همون متد قابل دسترسی هستند.

امیرمحمد رضائی

سلام و درود استاد JavaBean دقیقا چی هست ؟ تو توضیحات Encapsulation این خط رو نوشته بود

The Java Bean class is the example of a fully encapsulated class.

لقمان آوند

سلام
یه استاندارده که برای نوشتن کلاس ها یه سری قواعد مشخص داره. مثلا میگه همه پراپرتی ها پرایویت باشه و اکسس به اونها فقط از گتر ها و ستر ها باشه و …
در موردش سرچ کنید این نمونه قوانینش رو می تونید ببینید.

امیرمحمد رضائی

سلام و درود خسته نباشید استاد پروزه ها از چند جلسه ی دیگه شروع میشه ؟

لقمان آوند

حدودا 4 جلسه دیگه

hossein shabani

سلام
تو صفحه اول سایت نوشته دوره مفاهیم شی گرایی (فصل 3 – جلسه 4) : الگوی طراحی Adapter (آداپتر)
۱۹ دقیقه
در فایل اصلی 10دقیقه است !!

لقمان آوند

سلام جناب شبانی
ممنون بابت ذکر این مورد.
یا اشتباه تایپی در ثبت زمان ویدیو بوده . تایم ویدیو اصلی 10 دقیقه هست .

امیرمحمد رضائی

سلام و درود استاد اوند خسته نباشید ممنون بابت ویدیو های مختصر و مفید
لطفا در پروژه ها هم تا جایی که امکانش هست از این دیزاین پتر ها استفاده کنید

لقمان آوند

اگر کاربردش نیاز باشه چشم.

با تشکر از زحماتتون. لطفا الگوی طراحی microservice رو هم در برنامتون قرار بدید.

لقمان آوند

سلام
میکروسرویس یه معماری هست و قضیه اش یکم متفاوته از الگوی طراحی .
در مورد معماری میکروسرویس مطالعه و سرچ کنید کنید اطلاعات خوبی کسب می کنید

amir rahimi morad

سلام. فرمودید یکی از مزایا این است که اگر مثلا در class خود نام یک Method را عوض کنیم لازم نیست دیگر در تمام جاهایی که این متد را فراخوانی کرده ایم تغییر دهیم و فقط کافیست در همان قسمت build این تغییر را اعمال کنیم . متوجه منظورتون نشدم لطفا با مثال این مورد رو در صورت امکان بفرمایید مثلا نمونه کد زیر را در نظر بگیرید :

حالا چگونه باید getAuthor را در کلاس تغییر دهم مثلا بگذارم getAuthor1 ولی فراخوانی متد را تغییر ندهم و از طریق همان getAuthor متد جدید اجرا شود… هر کاری کردم نشد. لطفا راهنمایی کنید. ممنونم.

abstract class AbstractFactoryMethod {
	abstract static function makePHPBook( $param );
}


class SamsFactoryMethod extends AbstractFactoryMethod {
	private $context = "Sams";

	public static function makePHPBook( $param ) {
		$book = null;
		switch ( $param ) {
			case "us":
				$book = new SamsPHPBook;
				break;
			case "other":
				$book = new OReillyPHPBook;
				break;
			default:
				$book = new SamsPHPBook;
				break;
		}

		return $book;
	}
}

abstract class AbstractBook {
	protected $author;
	protected $title;
	abstract function getAuthor();
	abstract function getTitle();
}
abstract class AbstractPHPBook extends AbstractBook {
	private $subject = "PHP";
}

class SamsPHPBook extends AbstractPHPBook {

	function __construct() {
		//alternate randomly between 2 books
		mt_srand( (double) microtime() * 10000000 );
		$rand_num = mt_rand( 0, 1 );

		if ( 1 > $rand_num ) {
			$this->author = ‘George Schlossnagle’;
			$this->title  = ‘Advanced PHP Programming’;
		} else {
			$this->author = ‘Christian Wenz’;
			$this->title  = ‘PHP Phrasebook’;
		}
	}


	function getTitle() {
		echo $this->title;
	}

	function getAuthor() {
		echo $this->author;
	}
}


$phpUs = SamsFactoryMethod::makePHPBook( "us" );
echo $phpUs->getAuthor();
لقمان آوند

شما فرض کنید فکتوری ندارید و هزار جای برنامه new SamsPHPBook رو مستقیما استفاده کردید. الان قرار شده اسم کلاس بشه PHPBook . باید همه اون هزار جا رو عوض کنید.
ولی الان که فکتوری دارید اون هزار جا طبعتا از فکتوری SamsFactoryMethod::makePHPBook استفاده کردید. و الان که اسم کلاس عوض شده کافیه تو همون فکتوری اسم کلاس یا روش ساختن شی رو عوض کنید.

استاد آوند من فیلم های سایت lynda.com رو که می دیدم در مورد singleton می گفتند که بهتره همیشه به جاش از الگوی dependancy injection استفاده بشه به دلیل اینکه کلاس هایی که کانستراکتور خصوصی دارند تقریبا unit testing باهاشون غیر ممکنه ، خیلی سخت میشه اونها رو extend کرد یا متد هاشو جای دیگه override کرد یا اون کلاس رو mock کرد (که دقیقا این مورد رو نمیدونم یعنی چی).

لقمان آوند

بله این مورد درست هست و فکر می کنم در ویدیو هم گفتم بعضی ها این الگو رو مناسب نمی دونن. موردی که می گید وجود داره و اگر چنین شرایطی در برنامه تون دارید احتمالا بهتره الگوی سینگلتون رو استفاده نکنید.
mocking رو میشه اینجوری تعریف کرد که شما آبجکت هایی رو می سازید که شبیه سازی می کنن رفتار آبجکت های واقعی رو در حین اجرای برنامه. این مورد بیشتر در همون unit testing استفاده میشه.

لقمان آوند

بابت تاخیر عذرخواهی میکنم.
ایشالله دوره سریعا جلساتش منتر میشه و طی 1 ماه تکمیل میشه

لقمان آوند

سلام
فکر نمی کنم امکانپذیر باشه. ولی انتهای دوره حتما بررسی می کنیم.

لقمان آوند

اینکه یه کلاس که سینگلتون هست با یه کلاس که همه چیزشو استاتیک در نظر می گیریم حداقل تفاوتش اینه که اون کلاس سینگلتون می تونه اینترفیس ها رو پیاده سازی کنه و یا اینکه متدهاشو از جای دیگه به ارث ببره. ولی وقتی همه چیزو بخوای استاتیک ببینی ممکنه نتونی از این قابلیت بهره ببری مگه اینکه بگی کلاس پدر و یا اینترفیس هم همه استاتیک هستند که جالب نیست این شرایط. با سینگلتون می تونی شی ساخته شده رو از کلاس های پدرش ایجاد کنی (پلی مورفیسم).
شما از کلاس سینگلتون یک شی میسازی و با اون کار می کنی ولی تو حالتی که گفتی نمونه سازی نداریم و با اسم کلاس فقط کار می کنیم.

لقمان آوند

اینکه مطمئن شی فقط یه آبجکت ساخته شده طبیعتا هواست به حافظه بوده و بهتره. ولی همیشه و همه جا نمیشه از استاتیک ها استفاده کرد. باید جاشو تشخیص بدی و سر جای خودش استفاده کنی …

نیاز به لاگین

برای ارسال دیدگاه و یا پرسیدن سوال خود در این قسمت، باید در سایت لاگین شوید.
1 2 3 8
مدرس و آمار دوره
Course-Teacher
لقمان آوند
دانشجوی دکترای نرم افزار دانشگاه شیراز ، با 10 سال سابقه فعالیت های آموزشی در بستر وب فارسی . مدیر، موسس و برنامه نویس وبسایت سون لرن با بیش از 10 سال سابقه طراحی وب و برنامه نویسی حرفه ای زبان های Html, CSS, Javascript, Jquery, Ajax و PHP ، جاوا و ...
library_books
۳۹۵ مقاله تخصصی
school
۶ دوره برگزار شده
۷۴۳۹ علاقمندfavorite
۶۷۶۳ دانشجوpeople
۱۴۳۴ رایstar
پیشنیاز های دوره
آشنایی به مبانی و مفاهیم اولیه برنامه نویسی کمک زیادی به درک بهتر محتوای این دوره خواهد کرد.
پشتیبانی فنی دوره
مدرس دوره و تیم پشتیبانی سون لرن به مدت 3 ماه پس از خرید دوره در سامانه پشتیبانی مخصوص دانشجویان (برای دوره های حضوری)، پاسخگوی تمامی سوالات و ابهامات شما در مورد این دوره خواهند بود. همچنین پس از خرید هر کدام از دوره های حضوری و یا مجازی سون لرن، شماره تماس و ایمیل مدرس در اختیار دانشجویان دوره قرار خواهد گرفت تا به سرعت پاسخ سوالات خود را دریافت نمایند.

contact_phone اطلاعات تماس با مدرس :
email avan********@*****.***
phone ۰۹۲۱*******
access_time شنبه تا پنجشنبه، ۱۸ الی ۲۲ عصر
info اطلاعات کامل تماس با مدرس، برای دانشجویان دوره در دسترس می باشد.
مشاوره پیش از خرید
در صورتی که در مورد هر کدام از دوره های سون لرن سوال و یا ابهامی در ذهن شما هست، می توانید همین حالا با ما در تماس باشید و از مشاوره رایگان قبل از خرید دوره ها استفاده نمایید.
contact_phone شماره تماس : ۰۲۱۶۶۴۵۲۴۶۹
email ایمیل : support@7Learn.com