PDA

View Full Version : سوال: در این مثال (کلاس واسط) از کدام نوع کلاس استفاده کنم ؟



fox999
پنج شنبه 26 آذر 1388, 00:39 صبح
یلام دوستان


قصد نوشتن یک پروژه دارم . فرض کنید سه دسته کلاس داریم به اسم
g1
g2
g3

در هر کدوم از این دسته ها چندین کلاس وجود دارند .
هر کدوم از دسته ها خودشون شامل چندین کلاس می شن.

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

در واق اینطور می شه کفت کلاس دروازه هر دسته , پل بین کلاس های اون دسته و سایر دسته هاست .


حتما دوستان باتجربه متوجه شده اند منظورم چی هست ....


حالا سوالی که از شما دوستان دارم بنظرتون این کلاس دروازه از چه نوعی باید تعریف کنم ؟

من خودم از نوع استاتیک به ذهنم رسید...درسته ؟

mehdi.mousavi
شنبه 12 دی 1388, 14:47 عصر
چون این سه دسته کلاس با هم ارتباط دارند اومدم یک کلاس (به عنوان کلاس واسط یا کلاس دروازه) در نظر گرفتم بخاطر اینکه هر کدوم از دسته ها که به متد یا کلاسی از دسته دیر نیاز داشت مستقیما از کلاس دروازه اون دسته استفاده کنه ... در واق اینطور می شه کفت کلاس دروازه هر دسته , پل بین کلاس های اون دسته و سایر دسته هاست . حالا سوالی که از شما دوستان دارم بنظرتون این کلاس دروازه از چه نوعی باید تعریف کنم ؟ من خودم از نوع استاتیک به ذهنم رسید...درسته ؟

سلام.
اگر درست متوجه منظورتون شده باشم، شما دنبال نحوه تعریف Facade هستید. (فساد خونده میشه)! این در واقع لایه بیرونی دسترسی به Sub-System های Complex یک سیستم نرم افزاری هستش... اما در مورد نحوه تعریف این کلاس. شما میتونید این کلاس رو بصورت internal و غیر استاتیک تعریف کنید، سپس با یک Property ای که روش قرار میدید، Instance مورد نظر از این کلاس رو بگیرید و اعمال متدوال رو روش انجام بدید. بعنوان مثال:

Facade.Instance.DoWhateverThroughSubSystem1();

اینطوری میتونید Factory Pattern، Singleton Pattern و ... رو هم روش براحتی اعمال کنید و ...
البته این مساله کاملا بستگی به این داره که چیکار میخواهیم کنیم و چطوری (و توسط چه کسانی) قراره از Facade استفاده بشه...

اگر منظورتون چیزی غیر از این بوده، لطفا بیشتر توضیح بدید تا پاسخ بدم.

موفق باشید.

SMRAH1
شنبه 12 دی 1388, 15:01 عصر
سلام
اگر درست فهمیده باشم،این دقیقا جاییه که شما باید از Interface استفاده کنید.
موفق باشید