android 快速开发(一)抽象类的使用:使业务逻辑更清晰

init();

addLisener();

initSingleton();

initData();

}

/**

  • 所有初始化在此方法完成

*/

public abstract void init();

/**

  • 添加监听事件

*/

public abstract void addLisener();

/**

  • 初始化数据

*/

public abstract void initData();

/**

  • 初始化所有单例对象

*/

private void initSingleton() {

sp = SPUtil.getInstance();

}

@Override

protected void onStart() {

// TODO Auto-generated method stub

super.onStart();

}

@Override

protected void onResume() {

// TODO Auto-generated method stub

super.onResume();

}

@Override

protected void onPause() {

// TODO Auto-generated method stub

super.onPause();

}

@Override

protected void onRestart() {

// TODO Auto-generated method stub

super.onRestart();

}

@Override

protected void onStop() {

// TODO Auto-generated method stub

super.onStop();

}

@Override

protected void onDestroy() {

// TODO Auto-generated method stub

super.onDestroy();

}

}

在上面的例子中,我们可以看到class前面加了一个abstract修饰符,因为类包含了三个带有abstract修饰符的方法

分别是:init()  、  addLisener()  、  initData()

他们的作用在上面注释  很清楚

还发现  7个生命周期都包括在里面,目的是什么呢:

每个类继承这个抽象类,重写抽象的方法,使安卓本身的代码与我们需要做的逻辑分离,并且在我们开发的过程中,都需要对某个特定生命周期做一些通用的操作

这样可以省下许多代码量,如果还要在主动继承的类中操作,只需要重写这个方法就可以

下面我们来看下,主动继承的类的编码:

package com.yqy.yqy_abstract.activity;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.TextView;

import com.yqy.yqy_abstract.R;

import com.yqy.yqy_abstract.utils.L;

import com.yqy.yqy_abstract.utils.TextUtils;

public class MainActivity extends AbstractActivity {

private TextView tv_show;

@Override

public void init() {

setContentView(R.layout.activity_main);

tv_show = (TextView) findViewById(R.id.tv_show);

}

@Override

public void addLisener() {

tv_show.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View arg0) {

L.e(“YQY”, “tv_show>>onclick…”);

sp.write(“tv_show”, “点我了!”);

}

});

}

@Override

public void initData() {

tv_show.setText(sp.read(“tv_show”, “没点过我”));

}

@Override

protected void onStart() {

super.onStart();

if(TextUtils.isEmpty(sp.read(“tv_show”, “”))){

sp.write(“tv_show”, “没点过我…”);

};

}

}

我们可以发现,看起来很有逻辑性,分工明确

我们可以根据我们的业务逻辑来写不同的抽象类,基类等等,但是最终的父类也就像上面的写法

接下来会写一篇上面设计到的简单的辅助类:SPUtil、  L、T 等。。。

题外话

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在IT学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多程序员朋友无法获得正确的资料得到学习提升,故此将并将重要的Android进阶资料包括自定义view、性能优化、MVC与MVP与MVVM三大框架的区别、NDK技术、阿里面试题精编汇总、常见源码分析等学习资料。

【Android思维脑图(技能树)】

知识不体系?这里还有整理出来的Android进阶学习的思维脑图,给大家参考一个方向。

希望我能够用我的力量帮助更多迷茫、困惑的朋友们,帮助大家在IT道路上学习和发展~

参考docs.qq.com/doc/DSkNLaERkbnFoS0ZF
种整理和分享。但苦于知识传播途径有限,很多程序员朋友无法获得正确的资料得到学习提升,故此将并将重要的Android进阶资料包括自定义view、性能优化、MVC与MVP与MVVM三大框架的区别、NDK技术、阿里面试题精编汇总、常见源码分析等学习资料。

【Android思维脑图(技能树)】

知识不体系?这里还有整理出来的Android进阶学习的思维脑图,给大家参考一个方向。

[外链图片转存中…(img-eoHUgsPG-1724331517355)]

希望我能够用我的力量帮助更多迷茫、困惑的朋友们,帮助大家在IT道路上学习和发展~

参考docs.qq.com/doc/DSkNLaERkbnFoS0ZF

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值