آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

پروژه های اندروید و Design Pattern

123213  9 سال پیش  9 سال پیش
+3 0

با سلام

من می خوام درر برنامه ای که می نویسم از Design Pattern ها استفاده کنم . ویدیو ها رو خریدم تا نصف دیدم ولی نمی دونم آیا شما این نوع طراحی رو در ویدئو ها آموزش دادین ؟ در کدام یک و اینکه mvp , mvc, mvvm ,...

دیزاین پترن هستند ؟ با معماری فرق میکنن؟؟؟

0 0
از چه دیزاین پترنی میخواین استفاده کنین ؟ شما همیشه وقتی از دیزاین پترن استفاده میکنین که به یه مشکلی برخورد کنین و نتونین به روش های معمول برطرفش کنین ، برای این کار هم تعدادی دیزاین پترن معرفی شده و هر کدوم کارکرد خودشون رو دارن. در ویدئوهای قدیمی آموزش خود دیزاین پترن ها نبود ولی فک کنم دیزاین پترن بیلدر رو در یکی از ویدئو ها تا حدودی توضیح دادن استاد (اگه اشتباه نکنم تو قسمت دانلودر ) در مورد سوال دومتون اینهایی که گفتین معماری نرم افزار هستند و با دیزاین پترن ها فرق دارن (9 سال پیش)
+1 0
ببخشید دیزاین پترن چیه و چه کاری رو برای ما انجام میده؟ میشه توضیحی در مورد بهم بدین؟ممنونم (9 سال پیش)
 برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال 
سید محمود  9 سال پیش
+7 0

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

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

ما سه شاخه الگوی طراحی (دیزاین پترن) داریم
1- آفرینشی یا Creational: مثل همون سینگلتون یا بیلدر (سازنده) که گفتند. آفرینشی راجع به روش های ایجاد کلاسها و.. ست. که مشهورهاش :

Singleton (یگانه)

MultiTon (چندگانه مثل یگانه فقط برای هر آیدی از کلاس یک نمونه بیشتر ساخته نمیشه مثلا برای شاتر هر یکبار بیشتر ساخته نشه)

Pool (استخر ساخت یک شئ و استفاده از آن که در حین استفاده دیگه کسی نتونه از اون استفاده کنه مانند کانکشن استرینگ)

Factory Method (متود کارخانه رابطی برای ساخت اشیاء تعریف میکنه و به زیرکلاسها اجازه میده درباره اینکه چه شیئ رو نمونه سازی کنند تصمیم بگیرند)

Abstract Factory (کارخانه انتزاعی رابطی برای ساخت خانواده هایی از اشیاء مرتبط تدارک میبیند)
Builder (سازنده که فرایند ساخت شئ پیچیده رو از نمایشش جدا میکنه تا از اون برای ساخت انوع بازنمایی ازش استفاده بشه)
Prototype (نمونه اولیه ایجاد اشیاء جدید با استفاده از این نمونه ی تعریف شدی تا حدودی مثل کپی کردن کلاس سربازهای دشمن)


2- ساختاری یا Structural: درباره ی ساختار کلاس و متود و.. مثل وراثت ست مثل دیزاین پترن Adapter که مثل آداپتر تبدیل سه شاخه به دو شاخه کلاسی که سه شاخه دو شاخه تبدیل کنه. مشهورهاش :

Adapter (آداپتور)
Bridge (پل)
Composite (ساختار درختی)
Decorator (دکوراتیو)
Facade (نما (کلمه ی فرانسوی ست فِساد)
Flyweight (سبک وزن در لیست ویوی اندروید از این الگو استفاده میشه که برای فراهم نمودن تعداد زیادی از اشیاء به صورت سبک و کارا استفاده میشود)
Proxy (نماینده)

3- رفتاری یا Behavioral: درباره ارتباط بین کلاسهاست مثلا از روی کلاسی چند نمونه ساختیم و میخواهیم وقتی یکی از این نمونه ها تغییر کرد بقیه مطلع شوند که از دیزاین پترن مشاهده گر (Observer) استفاده میکنیم مشهوراش:

Chain of Responsibility (زنجیره ای از پاسخ دهنده ها)
Command (درخواست)
Interpreter (مفسر)
Iterator (تکرار کننده)
Mediator (میانجی و واسطه)
Memento (یادگاری)
Observer (مشاهده گر و نظاره گر در ام وی سی برای نظارت کردن در تغییرات ام وی سی و دبلیو پی وی سی استفاده میشه)
State (حالت)
Strategy (استراتژی)
Template Method (متود قالب)
Visitor (ناظر)

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

0 0
ممنونم بابت توضیح جامع و کاملت . اما نمیدونم چرا این توضیحات کمی گنگه برام.من مبتدیم اولین باره که این چیزا رو میشنوم (9 سال پیش)
پاسخ به سوال 
D E V I L  9 سال پیش
+1 0

همونطور که خودتون اطلاع دارین تو اندروید دیزاین پترن خاصی وجود نداره و تمام عناصر به همدیگه متصل هستند شما تو اکتویویتی یا فرگمنتاتون هم کارهای مربوط به ویو رو انجام میدیدن هم محاسبات و هم رو داده هاتون کار مکنید مثل کار با مدل ها و دیتابیستون و این گاها کار رو سخت میکنه و راه حل این مشکل دیزاین پترن ها هستند.در حال حاضر مطرح ترین دیزاین پترن برای اندروید mvp هستش که مزیت های زیادی رو با خودش به همراه میاره.مثل امکان استفاده از unit test ، نگهداری راحتتر پروژه،استفاده بهتر از تکنیک تزریق وابستگی ها و... فکر نمیکنم داخل این سری از آموزش ها به این مسائل پرداخته شده باشه ولی کلی مطلب میتونید در این رابطه پیدا کنید.


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .