日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android设计模式(九)--外观模式

發(fā)布時間:2025/7/14 Android 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android设计模式(九)--外观模式 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

問題:在Android中,Apk能夠有微信,QQ為代表的插件式安裝更新功能;

那么問題來了,主系統(tǒng)(姑且這么說)調(diào)用插件式安裝的子系統(tǒng)。由子系統(tǒng)提供對外的訪問。屬不屬于一種外觀模式呢?


先說設(shè)計模式:

1、定義:

為子系統(tǒng)中的一組接口提供一個統(tǒng)一接口。

Facade模式定義了一個高層接口,這個接口使得這子系統(tǒng)更easy使用。

2、目的:

減少對子系統(tǒng)的復(fù)雜度和依賴。這使得子系統(tǒng)更易于使用和管理。

提高代碼的質(zhì)量。代碼維護性,擴展性。



3、設(shè)計:

在設(shè)計之初。就要有意識的將兩個不同的層面分離。層與層之間建立外觀的Facade,
添加一個Facade能夠提供一個簡單的接口降低他們之間的依賴。



這我們在Android編程的時候,能夠有意識的將數(shù)據(jù)訪問和業(yè)務(wù)邏輯層嚴(yán)格分離開來。使得設(shè)計更加的低耦合。

尤其是對子系統(tǒng)的維護上,子系統(tǒng)越來越大時,外觀模式尤為重要!


4、簡單的demo:

首先是子系統(tǒng):

package com.example.demo.Facade; /*** 子系統(tǒng)設(shè)計* @author qubian* @data 2015年6月9日* @email naibbian@163.com**/ public abstract class Lottery {protected abstract String getLotteryName() ;protected abstract String getLotteryNum() ;protected abstract String getRandomNum() ;} package com.example.demo.Facade;public class SSQLottery extends Lottery{@Overrideprotected String getLotteryName() {return "SSQ";}@Overrideprotected String getLotteryNum() {return "3";}@Overrideprotected String getRandomNum() {return "6";}} package com.example.demo.Facade;public class DLTLottery extends Lottery{@Overrideprotected String getLotteryName() {return "DLT";}@Overrideprotected String getLotteryNum() {return "1";}@Overrideprotected String getRandomNum() {return "7";}}

然后是Facade以及使用:

package com.example.demo.Facade; /*** 外觀模式* 統(tǒng)一對外訪問* @author qubian* @data 2015年6月9日* @email naibbian@163.com**/ public class Facade {SSQLottery ssq;public String getLotteryName(String name){if (name.equalsIgnoreCase("SSQ")) {ssq = new SSQLottery();}return ssq.getLotteryName();}} package com.example.demo.Facade;import android.util.Log;public class UseFacade {public void use(){Facade facade = new Facade();Log.i("TAG", facade.getLotteryName("SSQ"));} }
demo 寫的好像太簡單了。只是,外觀模式確實也算是用的比較多的,并且比較簡單的模式;

依照我的理解。

從某種意義上來說。將插件式安裝理解成一種外觀模式。似乎顯得跟簡單,定義太淺顯了一些,

插件式的安裝目的是為了啟動子系統(tǒng)。除了喚起子系統(tǒng)以外,卻非常少會由主系統(tǒng)調(diào)用到子系統(tǒng)內(nèi)部的方法,當(dāng)然也不排除有這種情況,

若有則不太符合插件式安裝與更新的目的;所以確實有些無解了。

問題先留在此處了。



總結(jié)

以上是生活随笔為你收集整理的Android设计模式(九)--外观模式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。