当前位置: 首页 > wzjs >正文

遵义网站制作教程培训机构是干什么的

遵义网站制作教程,培训机构是干什么的,豆瓣 wordpress,网站制作建设公司一、定义: 使多个对象都有机会处理请求,从而避免了请求的发送者和接收者之间的耦合关系将这些对象连城一条链,并沿着这条链传递该请求,只到有对象处理它为止。 二、模式结构: 抽象处理者(Handler&#xff…

一、定义:

        使多个对象都有机会处理请求,从而避免了请求的发送者和接收者之间的耦合关系将这些对象连城一条链,并沿着这条链传递该请求,只到有对象处理它为止。

二、模式结构:

        抽象处理者(Handler):定义处理请求的接口,包含处理方法和设置下一个处理者的引用。

        具体处理者(ConcreteHandler):实现抽象接口,决定是否处理请求或传递给链的下一个对象。

三、应用场景:

        1.事件处理:view的层级事件分发。

        2.网络拦截链:OkHttp请求的拦截器机制。

        3.权限校验:多级权限检查。

四、代码例子:

        1.定义抽象处理者

public abstract class LoggerHandler {
    protected LoggerHandler nextHandler;

    // 设置下一个处理器
    public void setNextHandler(LoggerHandler nextHandler) {
        this.nextHandler = nextHandler;
    }

    // 处理日志请求
    public abstract void handleLog(String message, int level);
}
        2.实现具体处理者

// INFO 级别日志处理器
public class InfoLogger extends LoggerHandler {
    @Override
    public void handleLog(String message, int level) {
        if (level <= LogLevel.INFO) {
            System.out.println("INFO: " + message); // 模拟处理逻辑
        } else if (nextHandler != null) {
            nextHandler.handleLog(message, level); // 传递给下一级
        }
    }
}

// DEBUG 级别日志处理器
public class DebugLogger extends LoggerHandler {
    @Override
    public void handleLog(String message, int level) {
        if (level <= LogLevel.DEBUG) {
            System.out.println("DEBUG: " + message);
        } else if (nextHandler != null) {
            nextHandler.handleLog(message, level);
        }
    }
}

// ERROR 级别日志处理器
public class ErrorLogger extends LoggerHandler {
    @Override
    public void handleLog(String message, int level) {
        if (level <= LogLevel.ERROR) {
            System.out.println("ERROR: " + message);
        } // 无需传递(链的末端)
    }
}

// 日志级别常量
class LogLevel {
    public static final int INFO = 1;
    public static final int DEBUG = 2;
    public static final int ERROR = 3;
}

        3.构建处理链

public class LoggerChain {
    public static LoggerHandler buildChain() {
        // 创建处理器实例
        LoggerHandler infoLogger = new InfoLogger();
        LoggerHandler debugLogger = new DebugLogger();
        LoggerHandler errorLogger = new ErrorLogger();

        // 设置链式关系
        infoLogger.setNextHandler(debugLogger);
        debugLogger.setNextHandler(errorLogger);

        return infoLogger; // 返回链的起点
    }
}
        4.使用责任链

public class Main {
    public static void main(String[] args) {
        LoggerHandler chain = LoggerChain.buildChain();

        // 测试日志处理
        chain.handleLog("App started", LogLevel.INFO);    // INFO: App started
        chain.handleLog("Network error", LogLevel.ERROR); // ERROR: Network error
        chain.handleLog("Debug data", LogLevel.DEBUG);    // DEBUG: Debug data
    }
}


五、优缺点:

优点:

        1.解耦请求发送者与处理者。

        2.动态调整处理顺序。

        3.符合单一职责原则。

缺点:

        1.请求可能未被处理。

        2.调试困难,需要跟踪链传递过程。

        3.性能损耗,长链影响效率。

http://www.dtcms.com/wzjs/275984.html

相关文章:

  • 南山的网站建设公司有利于seo优化的是
  • 中山优秀网站建设seo代码优化包括哪些
  • 最牛的网站建设线上购买链接
  • wordpress开发官网seo优化基础教程pdf
  • 哪个网站有成品的毕业论文网站如何做优化排名
  • 网站正在建设中 打不开怎么办站长之家ppt模板
  • 应用网站开发百度seo排名培训优化
  • 女人做春梦网站百度seo指数查询
  • 网站个人博客怎么做谷歌推广优化
  • 无锡企业自助建站系统178软文网
  • wordpress中文附件乱码seo资源是什么意思
  • 北京故宫网页设计公司网站如何seo
  • 如何优选网站建设公司百度一下生活更好
  • 自己做购物网站seo职业
  • 平板电脑可以做淘宝网站吗百度推广app下载安卓版
  • 承德做网站boyun营销策划的概念
  • 那个网站可以做网站测速对比app拉新推广平台有哪些
  • 嘉兴做网站公司哪家好谷歌推广代理商
  • 网站的月度流量统计报告怎么做河北百度seo软件
  • 长沙网站建设哪家公司好宁波网站建设制作报价
  • 简易 建站百度怎么推广自己的视频
  • 自己建立网站要钱吗如何做好品牌宣传
  • 怎么做网站的搜索功能优化大师win7
  • 延安商城网站开发设计郑州网络推广公司
  • wordpress 主题 强大seo网络推广专员招聘
  • 常州做网站要多少钱网站seo外链
  • 本地的唐山网站建设独立站怎么搭建
  • 竞网网站建设长沙网站优化体验
  • 哪家做的濮阳网站建设怎么申请网站详细步骤
  • 在谷歌上做外贸网站有用吗网站运营推广