zoukankan      html  css  js  c++  java
  • 孙腾跃技术修炼之第一周(04.06-04.11)心得

    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  星期四 

  • 相关阅读:
    SQL注入: with rollup特性
    【转】kali配置--修改IP和DNS
    【转】getopt模块,实现获取命令行参数
    socket编程: TypeError: must be bytes or buffer, not str
    Ansible进阶之企业级应用
    Ansible之Playbook详解
    Ansible之常用模块介绍
    JAVA企业级应用Tomcat实战
    ubuntu网络、包管理、工作内容小结
    shell细节决定高度
  • 原文地址:https://www.cnblogs.com/SuNtEnGyUe/p/12666805.html
Copyright © 2011-2022 走看看