كيفية تصميم دروسي لleverege المصنع ويكون للمد؟

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

  •  03-07-2019
  •  | 
  •  

سؤال

وبلدي ج ++ SOA التطبيق لديه مفهوم "الجلسة" التي تستخدم تبادل البيانات بين الخدمات. في المثال المستخدم من أجل التحقق من مشروعية بعض عمليات الخدمة وقبل تنفيذ جلسة B الذي يرتكب أو تغييرات التراجع. أيا كان.

ولقد 2 أنواع من وسائط الدورة: طبيعتها وماذا لو. المضي قدما، لدي جلسة مختلفة، جلسة للشرعية، جلسة للإسناد، جلسة لارتكاب ذلك وهذا هو المشكلة الرئيسية. جلسة الشرعية يمكن أن يكون ماذا لو أو غيرها الحقيقي.

وكيفية إصلاح ذلك وتجنب الازدواجية الرمز؟

ويمكنني جعل <م> ISessionFactory واجهة ويكون <م> WhatIfFactory و <م> RealFactory تنفيذها. ثم أنا يمكن أن يجعل <م> ILegalitySession وجعل <م> WhatIfLegalitySession و <م> RealLegalitySession تنفيذها. ثم المصانع بلدي سيعود الكائنات الملائمة.

ولديها 2 مشاكل كبيرة. ماذا لو وضع الجديد سيأتي؟ وسوف يكون لتنفيذ مصنع جديد وفئات جديدة لكافة جلسات العمل! ما إذا كان نوع جلسة عمل جديدة يأتي؟ لا بد لي من تغيير كل من المصانع ...

وربما الاستقالة من 2 hierarhies ويكون whatIf جلسات "تزيين" جلسة الحقيقية؟ كيف يمكنني حصر التغيير؟

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

المحلول

وحاول لتنفيذ WhatIf مع الديكور. أو استخراج بعض "ماذا لو" أجزاء محددة لنوع من الاستراتيجية.

وثمة خيار آخر يستخدم من نمط الدولة. "WhatIf" الدولة و "ريال مدريد" الدولة.

نصائح أخرى

وأعتقد أن المنطقي هنا. قد ترغب في النظر أيضا في نمط استراتيجية وابن عمه وقت الترجمة لها، <أ href ل = "http://en.wikipedia.org/wiki/Policy-based_design" يختلط = "نوفولو noreferrer"> القائم على سياسة تصميم . انه من الصعب القول ما هو أفضل من دون مزيد من المعلومات. ديكور كبيرة لإضافة السلوك إضافية، والاثنان الآخران لتغيير السلوك القائمة.

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