Code Fragment-重構行數比較多的大方法。

來源:互聯網
上載者:User

經常有這樣的情況,一個方法裡有很多的代碼,不得不通過上下滑動螢幕來閱讀代碼。這種行數比較大的方法,有如下的缺點

  • 由雩都是細節,給讀者很高層次理解代碼帶來問題。
  • 很難抓住主次。

一個例子:

    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        String userSafetylegalUrl = SystemProperties.get(PROPERTY_LSAFETYLEGAL_URL);        final Configuration configuration = getResources().getConfiguration();        final String language = configuration.locale.getLanguage();        final String country = configuration.locale.getCountry();        String loc = String.format("locale=%s-%s", language, country);        userSafetylegalUrl = String.format("%s&%s", userSafetylegalUrl, loc);        mWebView = new WebView(this);        // Begin accessing        mWebView.getSettings().setJavaScriptEnabled(true);        if (savedInstanceState == null) {            mWebView.loadUrl(userSafetylegalUrl);        } else {            mWebView.restoreState(savedInstanceState);        }        mWebView.setWebViewClient(new WebViewClient() {            @Override            public void onPageFinished(WebView view, String url) {                // Change from 'Loading...' to the real title                mAlert.setTitle(getString(R.string.settings_safetylegal_activity_title));            }            @Override            public void onReceivedError(WebView view, int errorCode,                    String description, String failingUrl) {                showErrorAndFinish(failingUrl);            }        });        final AlertController.AlertParams p = mAlertParams;        p.mTitle = getString(R.string.settings_safetylegal_activity_loading);        p.mView = mWebView;        p.mForceInverseBackground = true;        setupAlert();    }

修改後:

    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        String userSafetylegalUrl = initConfigs();        initWebVoew(savedInstanceState, userSafetylegalUrl);        initAlert();    }

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.