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.外观模式:提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。