Android面試題(四)設計模式

2021-09-29 13:26:16 字數 1774 閱讀 7866

四、設計模式

1、單例模式

定義確保某乙個類只有乙個例項,而且自行例項化並向整個系統提供這個例項

使用場景

常見的實現方式

餓漢單例模式

public class singleton

//公有的靜態函式,對外暴露獲取單例物件的介面

public static singleton getinstance()

//公有的靜態函式,對外暴露獲取單例物件的介面

public static synchronized singleton getinstance()

if (singleton == null)

//公有的靜態函式,對外暴露獲取單例物件的介面

public static singleton getinstance()

public static singleton getinstance()

2、工廠模式

定義定義乙個用於建立物件的介面,讓子類決定例項化哪個類

使用場景

public inte***ce car else if ("jeep".equals(type)) else , handler);

proxy.bookticket();

proxy.collectmoney();

proxy.signcontract();

proxy.sing();

6、命令模式

命令模式:呼叫物件與作用物件之間分離,由中介軟體來協調兩者之間的工作,如控制器

public class receiver {

public void action() {

system.out.println("*****receiver.action" );

//呼叫者、發起者

public class invoke {

private command command;//也可以通過容器list容納很多命令物件,進行批處理。資料庫底層的事務管理就是類似的結構

public invoke(command command) {

super();

this.command = command;

//業務方法,用於呼叫命令類的方法

public void  call() {

command.execute();

public inte***ce command {

* 這個方法是乙個返回結果為空的方法。

* 實際專案中,可以根據需求設計多個方法

void execute();

class concretecommand implements command{

private receiver receiver;//命令的真正執行者

public concretecommand(receiver receiver) {

super();

this.receiver = receiver;

@override

public void execute() {

//命令執行前或後可以做相關的處理

receiver.action();

public class test {

public static void main(string args) {

command command = new concretecommand(new receiver());

invoke invoke = new  invoke(command);

invoke.call();

設計模式面試題

參考 常用的設計模式彙總,超詳細!這個模式本身很簡單而且使用在業務較簡單的情況下。一般用於小專案或者具體產品很少擴充套件的情況 這樣工廠類才不用經常更改 它由三種角色組成 來用類圖來清晰的表示下的它們之間的關係 抽象工廠模式 先來認識下什麼是產品族 位於不同產品等級結構中,功能相關聯的產品組成的家族...

Java面試題 設計模式

單例模式 保證被建立一次,節省系統開銷。工廠模式 簡單工廠 抽象工廠 解耦 觀察者模式 定義了物件之間的一對多的依賴,這樣一來,當乙個物件改變時,它的所有的依賴者都會收到通知並 自動更新。外觀模式 提供乙個統一的介面,用來訪問子系統中的一群介面,外觀定義了乙個高層的介面,讓子系統更容易使 用。模版方...

面試題 2 設計模式

指乙個類只有乙個例項,且該類能自行建立這個例項的一種模式。例如,windows 中只能開啟乙個任務管理器,這樣可以避免因開啟多個任務管理器視窗而造成記憶體資源的浪費,或出現各個視窗顯示內容的不一致等錯誤。通過提供乙個靜態的物件instance,利用private許可權的構造方法和getinstanc...