zoukankan      html  css  js  c++  java
  • Android开发规范

    Android开发规范

    为了规范开发,减小重构成本,总结编码规范如下,分享给大家,提供个参考

    命名规范

    • 关于MVP

      对于MVP模式,由于需要实现众多的接口,导致代码臃肿,故决定采取Contract模式,即将接口统一放置在同一类中。

      e.g.

      特别注意:为了减少开发成本,请特别注意Contract内部类的命名,如确定此方案,则务必不要命名为NewsModel等形式

      public interface NewsContract{
      interface Model{
      
      }
      interface Presenter{
      
      }
      interface View{
      
      }
      }

      对应实现类:

      特别注意:为了减少开发成本,请特别注意Presenter内部接口的命名,如确定此方案,则务必不要命名为NewsPresenterImpl等形式

      NewsPresenter

      public class NewsPresenter implments NewsContract.Presenter{
      
      }

      NewsModel

      public class NewsModel implments NewsContract.Model{
      
      }

      特别注意:明确区分ModelEntity 所有实体类放入Entity包,业务逻辑处理放入Model

    • 关于成员与变量

      1. 为了区分成员与local变量,采取与Android源码一致规范,即成员前加m。
      2. 静态常量命名需大写,且为final。

      e.g.

      public class Goods{
      public static final String GOODS = "goods"private String mGoodsName;
      private int mId;
      public class Goods(String goodsName,int id){
        mGoodsName = goodsName;
        mId = id;
      }
      }

    需要用作类似key判断的应写在静态常量里,切勿出现以下情况:

    //这是错误的范例,不要学!!!
    intent.getStringExtra("key");
    
    if(message.what == 0x123){
    }
    
    webView.loadUrl("http://baidu.com");
    

    规范写法如下:

    static final String KEY = "key";
    intent.getStringExtra(KEY);
    
    static final int FLAG = 0x123;
    if(message.what == FLAG){
    }
    
    static final String HOST = "http://baidu.com";
    webView.loadUrl(Constant.HOST);
    • 关于Activity

      对于需要参数的Activity启动,统一提供静态方法,可以明确地通知调用者需要的参数,避免漏参情况。

      特别注意:为了减少开发成本,请注意方法命名,如确定此方案,则务必不要命名为startWebViewActivity()等形式

      e.g.

      public static void startActivity(Context context, String title, String url) {
        Intent intent = new Intent(context, WebViewActivity.class);
        intent.putExtra(WebViewActivity.EXTRA_URL, url);
        intent.putExtra(WebViewActivity.EXTRA_TITLE_TEXT, title);
        context.startActivity(intent);
      }
    • 关于fragment

      统一提供newInstance()方法返回实例.

      特别注意:为了减少开发成本,请注意方法命名,如确定此方案,则务必不要命名为newPlaceFragment()等形式

      e.g.

      public static PlaceholderFragment newInstance(int sectionNumber){
        PlaceholderFragment fragment = new PlaceholderFragment();
        Bundle args = new Bundle();
        args.putInt(ARG_SECTION_NUMBER, sectionNumber);
        fragment.setArguments(args);
        return fragment;
      }

    • 关于布局文件

      1. 对于xml文件命名,前缀有layout、view、item、activity、fragment

      2. 对于id命名,有如下映射表,以此类推:

      控件名称 id命名
      TextView tv_sample
      RecyclerView rv_sample
      LinearLayout ll_sample
      RelativeLayout rl_sample

  • 相关阅读:
    如何更专业的使用Chrome开发者工具
    Javascript中的Object对象
    【leetcode】 Remove Duplicates from Sorted List
    Windows上x86程序正常但x64程序崩溃问题
    Microsoft source-code annotation language (SAL) 相关
    Visual Studio 2013 编译CEF步骤
    C++中调用Python脚本
    MFCButton Memory leak(内存泄露问题)
    快速排序
    插入排序
  • 原文地址:https://www.cnblogs.com/muyuge/p/6333516.html
Copyright © 2011-2022 走看看