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

教育海报设计素材网站开发工具是什么

教育海报设计素材网站,开发工具是什么,你会回来感谢我的正能量视频,建站之星7大核心价值博主前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住也分享一下给大家 👉点击跳转到教程 Android OkHttp源码阅读详解一 看OkHttp源码,发现OkHttp里面使用了责任链设计模式,所以才要学习…

博主前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住也分享一下给大家
👉点击跳转到教程

Android OkHttp源码阅读详解一

看OkHttp源码,发现OkHttp里面使用了责任链设计模式,所以才要学习责任链设计模式  小节2
最终会返回Response
Response getResponseWithInterceptorChain() throws IOException {// Build a full stack of interceptors.List<Interceptor> interceptors = new ArrayList<>();interceptors.addAll(client.interceptors());interceptors.add(retryAndFollowUpInterceptor);interceptors.add(new BridgeInterceptor(client.cookieJar()));interceptors.add(new CacheInterceptor(client.internalCache()));interceptors.add(new ConnectInterceptor(client));if (!forWebSocket) {interceptors.addAll(client.networkInterceptors());}interceptors.add(new CallServerInterceptor(forWebSocket));Interceptor.Chain chain = new RealInterceptorChain(interceptors, null, null, null, 0,originalRequest, this, eventListener, client.connectTimeoutMillis(),client.readTimeoutMillis(), client.writeTimeoutMillis());return chain.proceed(originalRequest);}chain包下的案例 熟悉责任链模式
chain2包下的案例 对应OkHttp源码中的责任链模式getResponseWithInterceptorChain()阅读OkHttp源码的总结
1.OSI七层模型,TCP/IP参考模型,HTTP格式
2.我们阅读了OkHttp源码的主线流程
3.我们阅读了OkHttp源码缓存方案的线程池
4.我们阅读了OkHttp源码,发现了构建者设计模式,责任链模式

一、首先写一个案例熟悉责任链模式

1、定义一个抽象类BaseTask

public abstract class BaseTask {//判断当前任务节点,有没有能力执行private boolean isTask;public BaseTask(boolean isTask) {this.isTask = isTask;}//执行下一个节点private BaseTask nextTask; //t2,t3//添加下一个节点任务public void addNextTask(BaseTask nextTask) {this.nextTask = nextTask;}//让子节点任务去完成的public abstract void doActon();//动作public void action() { //t1=false  t2=false,t3=trueif (isTask) {doActon(); //执行子节点 链条就断了} else {//继续执行下一个任务节点if (nextTask != null) {nextTask.action();}}}
}

2、定义四个Task类,都继承自BaseTask,这里只写一个其它三个同理

public class Task1 extends BaseTask {public Task1(boolean isTask) {super(isTask);}@Overridepublic void doActon() {//执行子节点System.out.println("Task1 任务节点一 执行了");}
}

3、定一个Test类进行测试

public class Test {public static void main(String[] args) {Task1 task1 = new Task1(false);Task2 task2 = new Task2(false);Task3 task3 = new Task3(true);Task4 task4 = new Task4(false);task1.addNextTask(task2);task2.addNextTask(task3);task3.addNextTask(task4);//执行第一个任务节点task1.action();}
}

输出结果:

Task3  任务节点三 执行了

二、写一个案例熟悉责任链模式,对应OkHttp源码中的责任链模式getResponseWithInterceptorChain()

1.首先定义一个接口

public interface IBaseTask {/*** @param isTask    任务节点是否有人执行* @param iBaseTask 下一个任务节点*/void doRunAction(String isTask, IBaseTask iBaseTask);
}

2.定义一个链条管理类ChainManager

public class ChainManager implements IBaseTask {private List<IBaseTask> mIBaseTaskList = new ArrayList<>();private int index = 0;public void addTask(IBaseTask iBaseTask) {mIBaseTaskList.add(iBaseTask);}@Overridepublic void doRunAction(String isTask, IBaseTask iBaseTask) {if (mIBaseTaskList.isEmpty()) {//抛出异常return;}if (index >= mIBaseTaskList.size()) {return;}IBaseTask iBaseTaskResult = mIBaseTaskList.get(index);//t1index++;iBaseTaskResult.doRunAction(isTask, iBaseTask);}
}

3.定义三个Task1,Task2,Task3

public class Task1 implements IBaseTask {@Overridepublic void doRunAction(String isTask, IBaseTask iBaseTask) {if ("no".equals(isTask)) {System.out.println("拦截器任务节点1 处理了...");return;} else {iBaseTask.doRunAction(isTask, iBaseTask);}}
}
public class Task2 implements IBaseTask {@Overridepublic void doRunAction(String isTask, IBaseTask iBaseTask) {if ("ok".equals(isTask)) {System.out.println("拦截器任务节点2 处理了...");return;} else {iBaseTask.doRunAction(isTask, iBaseTask);}}
}
public class Task3 implements IBaseTask {@Overridepublic void doRunAction(String isTask, IBaseTask iBaseTask) {if ("no".equals(isTask)) {System.out.println("拦截器任务节点3 处理了...");return;} else {iBaseTask.doRunAction(isTask, iBaseTask);}}
}

4、定义一个Test类进行测试

public class Test {public static void main(String[] args) {ChainManager chainManager = new ChainManager();chainManager.addTask(new Task1());chainManager.addTask(new Task2());chainManager.addTask(new Task3());chainManager.doRunAction("ok", chainManager);}
}

输出结果如下:

拦截器任务节点2 处理了...
http://www.yayakq.cn/news/59095/

相关文章:

  • 重庆网站建设公司 检测网站的seo效果
  • 申请域名 建设网站wordpress批量修改字体大小
  • 平面图设计网站中国十大知名网站
  • 培训学校网站建设要点天津软件定制开发
  • 速成网站 改版 影响建设银行网站 开户行怎么查
  • 上海做网站公司做网站的公司网络服务设备有哪些
  • 建教育网站需要多少钱素材大全
  • 网站建设donglongyun网上学平面设计
  • 响应式网站建设报价单出口外贸论坛
  • 房地产公司 网站建设app拉新工作室
  • 色系网站.网站制作公司站建设
  • 网站关于我们页面设计全屋定制十大名牌是哪些
  • 学校 网站 建设 目的广东省建设厅官方网站电话
  • 网站建设与制作实现精准营销山东封城最新消息2023年
  • 高校档案馆网站建设网站预算怎么做
  • 网站keywordswordpress不用php
  • 做直播网站软件有哪些软件私人定制app
  • 象山区网站建设成都网站建设外包业务
  • 海山网站建设做网站的图片的内存
  • 企业网站免费推广软件公司主页的网站格式
  • 长沙网站建设网网站建设毕业设计评价
  • 秦皇岛建设网站公司互联网平台推广怎么做
  • 网站建设丿金手指下拉公司网站制作找哪家
  • 凡客做网站wordpress页面是什么
  • 江西省建设监督网站微信网站开发 js框架
  • 云主机和云服务器有什么区别网站优化外包找谁
  • 闵行品划网站建设公司开发直播平台网站
  • 房地产网站怎么推广wordpress修改底部联系QQ
  • 互联网技术专业学什么seo知识点
  • 网站添加文章之后更新缓存访问网站就需要输入账号密码电子商务网站建设需要什么