Fragment和Activity的選擇

閑話多說

為什么作家應該用 Markdown 保存自己的文稿
獻給寫作者的 Markdown 新手指南
很久之前就知道m(xù)arkdown寫文檔很好,現(xiàn)在也學學吧,之前是怕太多語法記不住,實際上還好,常用的就那么幾個,比看 FSC(Fucking Source Code)簡單多了。
書寫過程中產(chǎn)生了一個小疑問: 段前是否需要縮進? 我個人覺得都差不多,不知各位何解。

發(fā)問

相信大家平時肯定經(jīng)常會用到Activity和Fragment,對應的生命周期也不知道面試問了多少遍了,這些就不多說了。


其實我最開始也是Activity一把梭

后來我發(fā)現(xiàn)除了少數(shù)特殊的情況,大多數(shù)Activity都可以換成Fragment。
不禁讓我產(chǎn)生疑問,F(xiàn)ragment和Activity各有什么特點,平時開發(fā)的時候又該如何的進行選擇(我經(jīng)??梢钥吹絼e人Fragment和Activity“亂"用,可能是因為不同的人有不同的習慣吧)

求解

Fragment依賴于Activity,所以我們不可能說不用Fragment,問題只是在于新功能是新建一個Activity還是就在當前Activity中顯示一個新的Fragment。
Fragment從性能上來說肯定是優(yōu)于Activity的。相信喜歡用Fragment的朋友肯定也是因為這個原因,頁面打開速度真tm快。其實我一開始也是拒絕使用Fragment的,比較Activity能實現(xiàn)我為什么要多此一舉用Fragment呢,畢竟Fragment還要學習成本。

我就是餓死在外邊,加班到深夜也不會用Fragment的

當你真正用起來才會知道Fragment的好,就像我某位高中物理老師的金句”沒有知情權(quán),就沒有話語權(quán)“。但是為什么還是會有很多人用過之后還是不喜歡用Fragment呢,很大程度上是因為Fragment相對于Activity來說更容易產(chǎn)生bug,因為Fragment更加靈活,就像我們的軟件給用戶1個按鈕和30個按鈕,哪種方案容易出問題顯而易見。但是所謂的出問題不是因為靈活的事物本身有問題,而是使用者的了解程度不夠,導致使用出錯。

  1. 平板和手機的界面適配要用到Fragment(最開始學Fragment時的例子)


    列表和詳情頁面在手機、平板上的不同展示方式

2.根據(jù)業(yè)務層次之間的包含關(guān)系

Fragment性能的確比Activity好,但是從性能方面比較Fragment和Activity無意義,因為它們的應用場景不同。Activity更傾向于一個整體模塊容器,而Fragment是其中的子模塊??梢岳斫獬梢粋€工廠(App)有N個生產(chǎn)不同產(chǎn)品的產(chǎn)房(Activity),每個廠房(Activity)里面有生產(chǎn)N類子產(chǎn)品的機器(Fragment)。所以,Activity的存在可以對應用更好的結(jié)構(gòu)化和模塊化的劃分,讓應用有更健壯和清晰的層次,而Fragment可以讓將應用的功能細化和具象化。兩者沒有好壞之分,根據(jù)功能劃分粒度來選取合適的載體才是正確的架構(gòu)方式。
作者:張老狗
鏈接:https://www.zhihu.com/question/39662488/answer/82769071
來源:知乎
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。

我目前的理解水平比較傾向這種觀點,各位有何見解,歡迎留言補充。

總結(jié)

總而言之,F(xiàn)ragment較Activity而言,更有性能優(yōu)勢,但如果使用不當也容易產(chǎn)生bug,但是我們作為一個開發(fā)人員,骨頭再硬還不是得啃,就如同生活不易,依舊要過。
至于選擇建議根據(jù)業(yè)務模塊和層級進行劃分
先就這么點吧,本來標題是準備寫”Fragment和Activity的特點與選擇“,后來發(fā)現(xiàn)好像沒寫什么特點就改成了”Fragment和Activity的選擇“,才疏學淺,望請見諒。

參考資料

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 下面是我對關(guān)于fragment官方文檔的翻譯,加了些自己的理解。 前言 Fragment 表示 Activity ...
    走在路上的日子閱讀 2,548評論 0 22
  • 作者介紹馮宇飛 ,現(xiàn)任人人車Android客戶端架構(gòu)師。 本文回顧總結(jié)了人人車公司Android客戶端的架構(gòu)演進歷...
    passiontim閱讀 1,652評論 0 9
  • Fragment 描述: ??翻譯可以譯為:碎片、片段,Android 3.0開始引入fragments 的概念;...
    Lost_Robot閱讀 1,950評論 0 11
  • 片段 Fragment表示 Activity中的行為或用戶界面部分。您可以將多個片段組合在一個 Activity ...
    岳小川閱讀 937評論 0 3
  • 定居在日本的外甥女今天幼兒園舉行運動會表演,孩子們在若大的活動空間里,展示這學期的學習成果,學習的內(nèi)容并非文化課,...
    桔子籽兒閱讀 293評論 0 0

友情鏈接更多精彩內(nèi)容