0 Hassan Hedr نشر 23 مارس 2022 أرسل تقرير نشر 23 مارس 2022 أنماط التصميم Design Patterns هي أنماط متشابهة تم ملاحظتها خلال حل الكثير من المشاكل البرمجية، وتم دراستها وتوثيقها وشرح استخداماتها ويمكن استخدامها عند مواجهة نفس المشاكل المتكررة لتساعدنا في حلها. النمط المضاد Anti Pattern هو أي نمط لا يهدف لحل مشكلة ما بل يخلق مشاكل أو يزيدها تعقيدًا، وأيضًا ملاحظة تلك الأنماط المضادة وشرح مساوءها يجعلنا نتجنب استخدامها للتخفيف من المشاكل. النمط المضاد هو نمط يجب تجنب استخدامه، يمكنك الاستفادة من قراءة المقال التالي للتعرف على أنماط التصميم: 1 اقتباس
0 شرف الدين حفني نشر 23 مارس 2022 أرسل تقرير نشر 23 مارس 2022 كما أجاب حسن فإن النمط المضاد هو نمط يخلق مشاكل أو يزيد تعقيد التصميم, ويمكننا تحديد ما كان النمط مفيد أو مضاد عبر بعض النقاط هل النمط يقوم بمخالفة أحد مبادئ solid? (مبدأ المسؤلية الواحدة, مبدأ مفتوح للإمتداد مغلق للتعديل, مبدأ إلإستبدال لليسكوف, مبدأ فصل الواجهة, مبدأ التبعية) إن كان النمط يقوم بمخالفة تلك المبادئ إذًا يمكننا إعتباره مبدأ مضاد هل النمط يقوم بإحداث code smells ؟ بالنسبة لمصطلح code smells هو يُعبر عن بعض المشاكل التي عندما تجدها في الشفرة يُعد ذلك إشارة عن سوء التصميم , بعض علامات الcode smells data clumbs : عندما يكون لدينا مجموعة من المتغيرات يتم تمريرها عادةً سويًا , على سبيل المثال public int doSomeThingWithPoint(int x, int y, int z) تلك الدالة تقوم بإستقبال الإخداثيات الثلاثة الخاصة بنقطة ما ومن ثم تقوم بعملية ما على تلك النقطة, هذا يُعد إشارة لتصميم سيئ, يمكننا تعديل التصميم ونضع المتغيرات الثلاثة في صنف يُعبر عن النقطة كما يتضح public class Point{ public setX(){ //set x} public setY(){ //set y} public setZ(){ //set y} ///getters } data classes : في المثال السابق عالجنا مشكلة الdata clumps ولكن تسببنا في ظهور مشكلة جديدة وهي data classes أي أصناف لا يوجد بها إلا getters , setters لا يوجد بها دوال فعلية, يمكننا معالجة تلك المشكلة عبر نقل دالة doSomeThing إلى الصنف point public class Point{ public setX(){ //set x} public setY(){ //set y} public setZ(){ //set y} ///getters public doSomeThing(){ //do something with point } } shotgun surgery: عندما تقوم بعمل تعديل على دالة ما وتتسبب في جعلك تحتاج تعديل على دوال واماكن اخرى كثيرة غيرها, هذا علامة على التصميم السيئ حيث من علامات التصميم الجيد أن التغيير في أحد الدوال أو الأصناف لا يؤثر على باقي البرنامج: ويمكنك القراءة عن مبادئ SOLID عبر المقالات في هذا الرابط 1 اقتباس
السؤال
خالد مرتضى
ما المقصود بanti pattern
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.