ما هو اسم هذا المصنع نوع نمط و كيف تمثل ذلك في UML?

StackOverflow https://stackoverflow.com/questions/629997

  •  08-07-2019
  •  | 
  •  

سؤال

على سبيل المثال:لدي عدة أنواع مثلالعجلات, الفرامل المحركات, القابض, AutoBox, ManualBox, ElectricWindow, RearParkingSensor, HeatedSeats.هذه سوف ترث ICarPart علامة واجهة (يمكن أن يكون سمة (جافا الشرح), ولكن لا يهم في هذه المرحلة).

ثم كتابة فئة السيارات التي يمكن أن تمثل جميع أنواع السيارات مثل

class Car
{
    string Name;
    DateTime creationDate;
    string ID;

    IList<ICarPart> parts;
}

ثم كتابة لإنشاء مصنع السيارات.المصنع يمكن أن أشير إلى بعض XML وهي قائمة المكونات لمختلف أنواع السيارات.E. g.(و يرجى تجاهل شكل هذا فقط للتوضيح):

<ExpensiveCar>
  <Name>Expensive Car</Name>
  <Parts>
    <HeatedSeats/>
    <Wheel count=4/>
    <RearParkingSensor/>
    <ElectricWindow type=FrontAndBack/>
  </Parts>
</ExpensiveCar>

المصنع من شأنه أن تحليل هذه المكونات القائمة و إنشاء الكائن السيارة.السيارة الجديدة أنواع ستكون متاحة لنظام توفير قطع الغيار كانت مشفرة قائمة المكونات XML المكتوب.

الأسئلة:

  1. ما هو هذا النمط يسمى ؟ أم أنها مجرد أنماط متعددة جنبا إلى جنب ؟
  2. هو أي من هذه antipattern?
  3. كيف يمكنني تمثل هذا في UML?أنا يمكن أن تفعل فئة الرسم على أجزاء السيارة قاعدة الطبقة.كيف تظهر حالات من تلك الفئة التي يدعمها حاليا والأجزاء لديهم ؟

شكرا مقدما.إذا كان أي من هذه هو غير واضح يرجى التعليق و سوف تعدل/udpate/تقديم مزيد من التفاصيل.

هل كانت مفيدة؟

المحلول 3

  1. ما هو هذا النمط يسمى ؟ أم أنها مجرد أنماط متعددة جنبا إلى جنب ؟

نمط المذكورة أعلاه ، باني نمط.باني نمط يبني كائنات معقدة من مجموعة من أبسط أجزاء.في بعض الأحيان الأشياء التي بناها باني نمط مركب الكائنات (على الرغم من عدم neccessarily في السؤال حالة).

باني نمط غالبا ما يتجلى باستخدام الثابت ترميز المكونات القوائم ، على الرغم من أن هناك لا شيء في النمط الذي يتطلب مثل هذا ولا يبدو أن هناك نمط معين موثقة واصفا "قائمة المكونات" النهج.

  1. هو أي من هذه antipattern?

لا

  1. كيف يمكنني تمثل هذا في UML?

ربما عن طريق:

  1. تحديد فئة الرسم البياني تظهر أجزاء الطبقات وكذلك فئة السيارات.تبين أن كل جزء من الدرجة تنفذ ICarPart واجهة.
  2. ربما في فصل (ولكن ربط) فئة الرسم البياني يظهر اسمه الحالات من فئة السيارات باستخدام UML سبيل المثال التدوين.على سبيل المثال فئة التمثيل يسمح لك بتحديد قيم السمات في تلك الفئة ، على سبيل المثال
------------------------------------------
|ExpensiveCar : Car                      |
------------------------------------------
|parts = {                               |  
|HeatedSeats,                            |
|Wheel (count = 4),                      |
|RearParkingSensor,                      |
|ElectricWindows (type = FrontAndBack) } |
------------------------------------------

لاحظ أن لأن هذا هو مثيل النص "ExpensiveCar :سيارة" ينبغي التأكيد ولكن حتى لا تسمح لي القيام بذلك.

التدوين لقد استعملت هنا التهيئة مجموعة مع أجزاء ليست كبيرة و قد لا يكون أفضل نهج.ربما يكون البديل إضافة UML مذكرة تتضمن الفعلية XML.الشيء المهم هو أن العميل يمكن أن نرى ما الذي يجعل سيارة باهظة الثمن وهكذا يمكن مبرمج.

نصائح أخرى

ما هو هذا النمط يسمى ؟ أم أنها مجرد أنماط متعددة يجمع?

لديك طريقة مصنع نمط (خلق سيارة الكائنات) وحسن القديمة تكوين (خلق من عجل, مقعد الخ).هذا الأخير هو الاختلاف من التكوين.

أعتقد أن هذا قد يكون نمط مصنع مجردة ، كما تريد مجموعة من الأجزاء أن تكون متوافقة مع بعضها البعض.ربما لا تريد إطارات الشاحنات على الاتفاق عجلات السيارة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top