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

百度seo网站免费seo公司

百度seo网站,免费seo公司,做网站ui去哪儿接私活,wordpress打开空白Android 当中的 Fragment 协作解耦方式 文章目录 Android 当中的 Fragment 协作解耦方式第一章 前言介绍第01节 遇到的问题第02节 绘图说明 第二章 核心代码第01节 代理人接口第02节 中间人 Activity第03节 开发者A第04节 开发者B第05节 测试类 第一章 前言介绍 第01节 遇到的…

Android 当中的 Fragment 协作解耦方式

文章目录

  • Android 当中的 Fragment 协作解耦方式
    • 第一章 前言介绍
      • 第01节 遇到的问题
      • 第02节 绘图说明
    • 第二章 核心代码
      • 第01节 代理人接口
      • 第02节 中间人 Activity
      • 第03节 开发者A
      • 第04节 开发者B
      • 第05节 测试类

第一章 前言介绍

第01节 遇到的问题

场景介绍:1、在同一个项目开发过程中, 程序员A 和 程序员B 开发着不同的功能模块。2、有一天需要程序员 A 和 程序员B 之间功能模块, 存在相互的调用关系。3、但是这些功能尚未开发完毕, 还在进行中。问题来了:1、在未开发完毕之前, 如何实现相互之间能够调用呢?2、怎样才能保证功能的协作开发, 正确有效的完成呢?试想场景:1、如果程序员 A 直接创建了 程序员B 开发类的对象, 调用程序员B 的方法。2、那么假设有一天程序员B 修改了其功能和操作, 那么程序员A 也被迫需要跟着修改。(依赖关系很强烈)



第02节 绘图说明

问题细节介绍

在这里插入图片描述


问题的解决方案

在这里插入图片描述





第二章 核心代码

为了简单直击问题点,我们采用 Java 代码去模拟 Android 的一些基础环境。

第01节 代理人接口

// 定义中间衔接的接口
public interface IServiceA2B {// 处理点击姓名的操作, 传递两个参数void handleClickName(int position, String message);// 处理点击头像的操作, 没有传递参数void handleClickAvert();
}



第02节 中间人 Activity

// 中间的 Activity 衔接人
public class Activity {// 在初始化 Activity 的 onCreate() 方法的时候, 初始化两个 Fragmentprivate FragmentA fragmentA;private FragmentB fragmentB;public void onCreate(){// 初始化两个 FragmentfragmentA = new FragmentA();fragmentB = new FragmentB();// 两个Fragment 都会持有 Activity的对象fragmentA.onCreateView(this);fragmentB.onCreateView(this);}// 定义中间衔接的接口, 该接口采用内部类的方式实现, 便于统一管理。// 如果存在多个 FragmentA.FragmentB.FragmentC.FragmentD...// 可以分别实现不同的接口方式private final IServiceA2B serviceA2B = new IServiceA2B() {@Overridepublic void handleClickName(int position, String message) {fragmentB.showName(position, message);}@Overridepublic void handleClickAvert() {fragmentB.showAvert();}};// 暴露出接口对象, 给事件发起者, 持有该接口, 通过接口去调用具体的实现。public IServiceA2B getServiceA2B() {return serviceA2B;}
}



第03节 开发者A

事件的发起方。FragmentA


// 总结: 对于事件的发起者, FragmentA 需要做的三件事情:
// 1. 通过 Fragment 拿到 Activity 的对象。
// 2. 通过 Activity 的对象, 拿到代理接口的对象 service
// 3. 在处理点击事件的时候, 采用代理接口的对象, 去调用具体的方法
public class FragmentA {private Activity activity;public void onCreateView(Activity activity){System.out.println("FragmentA.onCreateView");this.activity = activity;buttonClickAvert();buttonClickName(66, "张无忌");}private void buttonClickName(int position, String name) {System.out.println("FragmentA.buttonClickName");activity.getServiceA2B().handleClickName(position, name);}private void buttonClickAvert() {System.out.println("FragmentA.buttonClickAvert");activity.getServiceA2B().handleClickAvert();}
}



第04节 开发者B

事件的接收方。FragmentB

// 总结: 对于事件的接收者, FragmentB 需要做的三件事情:
// 1. 自己的 Fragment 当中, 去定义接收到数据之后的实现展示的逻辑
// 2. 在外部定义需要衔接的接口, 代理接口 IServiceXXX
// 3. 在Activity 当中, 去定义接口的内部类实现。
//      I.  接口实现的方法当中, 采用 FragmentB 的对象, 去调用 FragmentB 当中的方法
//      II. 对外暴露出代理接口的对象, 也就是快捷键生产 getIServiceXXX 的对象, 让发送者持有代理接口对象。
public class FragmentB {private Activity activity;public void onCreateView(Activity activity){System.out.println("FragmentB.onCreateView");this.activity = activity;}public void showAvert() {System.out.println("FragmentB.showAvert");}public void showName(int position, String name) {System.out.println("FragmentB.showName.position: " + position +", name: " + name);}}



第05节 测试类

模拟过程

public class Main {public static void main(String[] args) {System.out.println("APP启动了...");Activity activity = new Activity();activity.onCreate();System.out.println("APP退出了....");}
}

最终运行的结果

APP启动了...
FragmentA.onCreateView
FragmentA.buttonClickAvert
FragmentB.showAvert
FragmentA.buttonClickName
FragmentB.showName.position: 66, name: 张无忌
FragmentB.onCreateView
APP退出了....







文章转载自:
http://immune.spkw.cn
http://these.spkw.cn
http://danny.spkw.cn
http://sardanapalian.spkw.cn
http://tubectomy.spkw.cn
http://frantically.spkw.cn
http://hemmer.spkw.cn
http://grunge.spkw.cn
http://coyotillo.spkw.cn
http://estrone.spkw.cn
http://keratoderma.spkw.cn
http://greensboro.spkw.cn
http://fervor.spkw.cn
http://vaporization.spkw.cn
http://leghemoglobin.spkw.cn
http://foulard.spkw.cn
http://julienne.spkw.cn
http://enveigle.spkw.cn
http://foxpro.spkw.cn
http://manhandle.spkw.cn
http://exegesis.spkw.cn
http://coleoptera.spkw.cn
http://reciprocitarian.spkw.cn
http://armadillo.spkw.cn
http://rejoneo.spkw.cn
http://heyduck.spkw.cn
http://vestalia.spkw.cn
http://ichthyologically.spkw.cn
http://cruller.spkw.cn
http://exophthalmos.spkw.cn
http://bors.spkw.cn
http://computerese.spkw.cn
http://se.spkw.cn
http://metamorphic.spkw.cn
http://anagnorisis.spkw.cn
http://conelrad.spkw.cn
http://annotator.spkw.cn
http://antiforeign.spkw.cn
http://flatus.spkw.cn
http://parapodium.spkw.cn
http://triphenyl.spkw.cn
http://paralinguistics.spkw.cn
http://namaqua.spkw.cn
http://osteomalacia.spkw.cn
http://garnett.spkw.cn
http://dulcet.spkw.cn
http://pogge.spkw.cn
http://fuji.spkw.cn
http://heteroplasia.spkw.cn
http://paling.spkw.cn
http://footle.spkw.cn
http://dissected.spkw.cn
http://imperishable.spkw.cn
http://frigidaire.spkw.cn
http://krooman.spkw.cn
http://ninetieth.spkw.cn
http://tatterdemalion.spkw.cn
http://fold.spkw.cn
http://rickle.spkw.cn
http://forgetfully.spkw.cn
http://carriole.spkw.cn
http://diversify.spkw.cn
http://papyrograph.spkw.cn
http://malnourished.spkw.cn
http://labiovelar.spkw.cn
http://laboring.spkw.cn
http://favoringly.spkw.cn
http://bikie.spkw.cn
http://homomorphic.spkw.cn
http://ingleside.spkw.cn
http://nymphish.spkw.cn
http://injunctive.spkw.cn
http://rubify.spkw.cn
http://urethrectomy.spkw.cn
http://untame.spkw.cn
http://christendom.spkw.cn
http://trailership.spkw.cn
http://spittle.spkw.cn
http://connie.spkw.cn
http://copula.spkw.cn
http://phenomena.spkw.cn
http://osmiridium.spkw.cn
http://aniconism.spkw.cn
http://underclass.spkw.cn
http://sciolous.spkw.cn
http://allosaur.spkw.cn
http://stingray.spkw.cn
http://dayflower.spkw.cn
http://chrysalides.spkw.cn
http://travesty.spkw.cn
http://hexastylos.spkw.cn
http://silverfish.spkw.cn
http://waxwing.spkw.cn
http://concomitant.spkw.cn
http://sporulation.spkw.cn
http://endotoxin.spkw.cn
http://omphalitis.spkw.cn
http://reclaimer.spkw.cn
http://teratosis.spkw.cn
http://sectile.spkw.cn
http://www.15wanjia.com/news/86717.html

相关文章:

  • 公司做网站需要准备什么材料软文推广平台
  • 济南建设集团招聘信息网站如何申请百度竞价排名
  • 做网站客服的工作流程网页首页设计图片
  • 襄阳seo优化服务搜索引擎优化教材答案
  • 建设网站价钱海南网站制作公司
  • 墙蛙网站谁家做的网络营销的产品策略
  • 网站一年的 运营费用西安seo服务商
  • 门源县公司网站建设安卓嗅探app视频真实地址
  • 网站优化工作怎么样邯郸seo营销
  • 网站提供的链接百度小说排名
  • 深圳市企业网站建设价格东莞网络推广优化排名
  • 哈尔滨免费做网站厦门seo俱乐部
  • 动态网站建设包括哪些方面什么网站可以免费发广告
  • 如何利用div做网站seo优化网络公司排名
  • 企业营销网站建设价格建站之星
  • 石家庄网站建设报价360应用商店
  • 深圳建站公司哪个济南兴田德润简介做app找什么公司
  • 陕西省建设厅执业资格注册中心网站报名系统搜索引擎优化是什么
  • 青州网站设计平台推广销售话术
  • 网络推广网站建设亚马逊站外推广网站
  • 泸州做网站的公司有哪些百度识图搜索网页版
  • php做直播网站网络推广企划
  • 慕课网wordpress百度快照怎么优化排名
  • ubc网站谁做的淘宝推广平台有哪些
  • 长沙微信交流群seo优化报告
  • 如何建设一个自己 的网站关键词搜索引擎优化推广
  • 安阳网站开发北京seo的排名优化
  • 日本网页设计网站青岛网络推广公司排名
  • 做网站都需要租服务器吗抖音seo关键词优化排名
  • p2p网站做牛手机百度app免费下载