1. 程式人生 > >單例模式,命令模式,介面卡模式,外觀模式

單例模式,命令模式,介面卡模式,外觀模式

1.單例模式,很簡單,雙鎖

2.命令模式(用在佇列請求,執行緒池,資料庫日誌等)

經典的命令模式包括4個角色:

Command:定義命令的統一介面

ConcreteCommand:Command介面的實現者,用來執行具體的命令,某些情況下可以直接用來充當Receiver。

Receiver:命令的實際執行者

Invoker:命令的請求者,是命令模式中最重要的角色。這個角色用來對各個命令進行控制。

/// Command角色
interface Command {
    void Execute();
}
/// ConcreteCommand角色
class ConcreteCommand implements Command {
    private Receiver receiver = null;

    public ConcreteCommand(Receiver receiver) {
        this.receiver = receiver;
    }

    public void Execute() {
        receiver.DoA();
        receiver.DoB();
    }
}
/// Receiver角色
class Receiver {
    public void DoA() {
        System.err.println("DoA");
    }

    public void DoB() {
        System.err.println("DoB");
    }
}
/// Invoker角色
class Invoker {
    private Command command = null;

    //設定命令
    public void SetCommand(Command command) {
        this.command = command;
    }

    //執行命令
    public void RunCommand() {
        command.Execute();
    }
}
/// 客戶端呼叫
public class Test {
    public static void main(String[] args) {
        Receiver receiver = new Receiver();
        Invoker invoker = new Invoker();
        invoker.SetCommand(new ConcreteCommand(receiver));
        invoker.RunCommand();
    }
}

3.介面卡模式:將一個類的介面轉換成客戶希望的另一個介面。介面卡模式讓那些介面不相容的類可以一起工作

https://www.cnblogs.com/songyaqi/p/4805820.html

4.外觀模式:提供了一個統一的介面,用來訪問子系統中的一群介面。外觀定義了一個高層介面,讓子系統更容易使用。