1.新项目构建中遇到的Android继承实现问题
需求:让activity共享一部分UI
思路:写一个activity的子类,然后将公共部分的UI在这个子类activity中实现,命名为BaseActivity,最后所有要共享此部分UI的activity都继承这个BaseActivity
BaseActivity使用initView(),setListener(),getData()方法,则需要实现BaseIView接口。
public abstract class BaseActivity extends AppCompatActivity implements BaseIView { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setScreenState(); if (savedInstanceState != null) { } else { setContentView(getLatoutId()); initView(); setListener(); getData(); } } @Override public void onConfigurationChanged(Configuration newConfig){ super.onConfigurationChanged(newConfig); } @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); } /** * 目标activity * * @param cls */ @Override public void mStartActivity(Class<?> cls) { Intent intent = new Intent(this, cls); startActivity(intent); } /** * @param cls 目标activity * @param bundle 参数 */ @Override public void mStartActivity(Class<?> cls, Bundle bundle) { Intent intent = new Intent(this, cls); intent.putExtras(bundle); startActivity(intent); } @Override public Context getMContext() { return this; } /** * 设置状态栏 */ public void setStatusBar() { } /** * 设置屏幕状态 */ public void setScreenState() { setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);//强制横屏 this.requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题栏 this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);//去掉信息栏 this.supportRequestWindowFeature(Window.FEATURE_NO_TITLE);//隐藏标题栏(AppCompatActivity) } @Override protected void onStart() { super.onStart(); } @Override protected void onResume() { super.onResume(); if (isNeedCheck) { checkPermissions(needPermissions); } } @Override protected void onPause() { super.onPause(); } @Override protected void onStop() { super.onStop(); } @Override protected void onDestroy() { super.onDestroy(); } @Override public void showLoadDialog(String msg) { if (mLoadingDialog == null) { mLoadingDialog = LoadingDialog.getInstance(this); } mLoadingDialog.show(); } @Override public void hideLoadDialog() { if (mLoadingDialog != null) { mLoadingDialog.dismiss(); mLoadingDialog = null; } } }
2.《程序员修炼之道-从小工到专家》学习心得
这几天读完了这本书的第二章有几点感悟,在此记录。
1) 重复的危害:可靠地开发软件、并让我们的开发更易于理解和维护的唯一途径是遵循DRY原则,DRY就是Don't Repeat Yourself的缩写,我们不要重复自己,不要重复表述项目中的知识,要有大局观,避免反复赘述,而是学会在多个地方表达同一事物,牵一发而动全身,这是一个注重实效的程序员所必备的精神。我认为,程序员之所以存在容易重复自己的问题,是因为他太想偷懒了,比如无耐性的重复和开发者之间的重复,这是单纯的ctrl+c和ctrl+v。你现在也许可以节省几秒钟,但以后却可能损失几小时,欲速则不达,开发者的慵懒是造成诸多问题的关键。
2) 正交性:在计算技术中,正交性用于表达某种不相依赖性或是解耦性,即互不影响的两个事物,他们之间具有正交性。比如我们孺教网的作业系统,他的主题界面的更新换代,不会影响都后台数据库的构建,反过来,后台数据库关系的改变不会影响到UI界面的展示。所以正交的好处是什么呢?那就是提高了生产率同时降低了开发风险。大多数软件研发团队都会遇到成员互相争吵的情况,归根到底是一点小的修改就会引起全局的变动,这就是一个非正交系统所带来的隐患。那么处理好团队的正交性问题,让每个成员都能明确好自己在团队中的责任,那就一定要分好小组并对分组即使进行相应的调整。
这是我的第一篇学习心得博客. 2020.4.9 23:23 星期四