كما يوحي الاسم، تقوم سلسلة المسؤولية بإنشاء سلسلة من كائنات الاستقبال للتعامل مع الطلبات.
يقوم هذا النمط بفصل مرسل الطلب ومتلقيه بناءً على نوع الطلب.
ويأتي هذا النمط ضمن النمط السلوكي.
في هذا النمط، يكون لكل كائن متلقي للطلب إشارة إلى الكائن التالي، إذا لم يتمكن من التعامل مع الطلب، فسيتم تمرير الطلب إلى المتلقي التالي في السلسلة.
دعونا نفهم ذلك من خلال أخذ مثال آلية التسجيل التي تسجل الرسائل بناءً على مستوى الرسالة (الطلب)
المسجل التجريدي
package Patterns.Behavioral.chainOfResponsibility; public abstract class AbstractLogger{ /** * TRACEأجهزة تسجيل الخرسانة
package Patterns.Behavioral.chainOfResponsibility; public class DebugLogger extends AbstractLogger { private String className = this.getClass().getSimpleName(); private String logger = "DEBUG"; public DebugLogger(){ this.LEVEL = 1; } @Override void write(String message) { System.out.println(className ":" logger ":" message); } } package Patterns.Behavioral.chainOfResponsibility; public class InfoLogger extends AbstractLogger { private String className = this.getClass().getSimpleName(); private String logger = "INFO"; public InfoLogger(){ this.LEVEL = 2; } @Override void write(String message) { System.out.println(className ":" logger ":" message); } } package Patterns.Behavioral.chainOfResponsibility; public class ErrorLogger extends AbstractLogger { private String className = this.getClass().getSimpleName(); private String logger = "ERROR"; public ErrorLogger(){ this.LEVEL = 3; } @Override void write(String message) { System.out.println(className ":" logger ":" message); } }رئيسي
package Patterns.Behavioral.chainOfResponsibility; public class Main { public static AbstractLogger intializeLoggers(){ AbstractLogger errorLogger = new ErrorLogger(); //LEVEL = 3; AbstractLogger infoLogger = new InfoLogger(); //LEVEL = 2; AbstractLogger debugLogger = new DebugLogger(); // LEVEL = 1; errorLogger.setNextLogger(infoLogger); infoLogger.setNextLogger(debugLogger); return errorLogger;// return the highest priority Logger first } public static void main(String args[]){ // initialize the chain of responsible objects AbstractLogger logger = intializeLoggers(); //pass the request down the responsibility chain //logging level 3 logger logger.logMessage(3, "log this error message"); //loggin level 2 logger logger.logMessage(2, "info level log message"); //logging level 1 logger logger.logMessage(1, "debug level log message"); } }الإخراج:
ErrorLogger:ERROR:log this error message InfoLogger:INFO:info level log message DebugLogger:DEBUG:debug level log messageالنقاط الرئيسية
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3