文章目录
- UML简单知识
- 1.单例模式
- 2.工厂方法模式
- 3.迭代器模式
- 4.策略模式
- 5.建造者模式
- 6.模板方法模式
- 7.代理模式
- 8.责任链模式
- 9.抽象工厂模式
- 10.适配器模式
- 11.观察者模式
- 12.外观模式
参考了
https://blog.csdn.net/u010837612/category_10400718.html
https://www.runoob.com/design-pattern/design-pattern-tutorial.html
https://zhuanlan.zhihu.com/p/109655171
UML简单知识
参考https://zhuanlan.zhihu.com/p/109655171
“+”表示 public;
“-”表示 private;
“#”表示 protected;
不带符号表示 default。 friendly
实现关系
1.单例模式
意图:保证一个类仅有一个实例,并提供一个访问它的全局访问点。
主要解决:一个全局使用的类频繁地创建与销毁。
何时使用:当您想控制实例数目,节省系统资源的时候。
如何解决:判断系统是否已经有这个单例,如果有则返回,如果没有则创建。
1、单例类只能有一个实例。
2、单例类必须自己创建自己的唯一实例。
3、单例类必须给所有其他对象提供这一实例。
2.工厂方法模式
3.迭代器模式
迭代器模式(Iterator Pattern)
意图:提供一种方法顺序访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示。主要解决:不同的方式来遍历整个整合对象。
何时使用:遍历一个聚合对象。
如何解决:把在元素之间游走的责任交给迭代器,而不是聚合对象。
4.策略模式
策略模式(Strategy Pattern):定义一系列算法类,将每一个算法封装起来,并让它们可以相互替换,策略模式让算法独立于使用它的客户而变化,也称为政策模式(Policy)。策略模式是一种对象行为型模式
interface Strategy
class ConcreteStrategy implments Strategy
class Cart
{
public void opration(int num,Strategy starategy)
{
strategy.operation(num);
}
}
class CLient
{
cart..opration(num,new ConcreStratgy());
}
有多种不同的算法来实现同一个任务,但需要client根据需要
动态切换算法,而不是写死在代码里
public interface Strategy {
public int doOperation(int num1, int num2);
}
public class OperationSubtract implements Strategy{
@Override
public int doOperation(int num1, int num2) {
return num1 - num2;
}
}
public class OperationAdd implements Strategy{
@Override
public int doOperation(int num1, int num2) {
return num1 + num2;
}
}
class Context {
private AbstractStrategy strategy; //维持一个对抽象策略类的引用
public void setStrategy(AbstractStrategy strategy) {
this.strategy= strategy;
}
//调用策略类中的算法
public void algorithm() {
strategy.algorithm();
}
}
abstract class Strategy {
public abstract void algorithm(); //声明抽象算法
}
class ConcreteStrategyA extends AbstractStrategy {
//算法的具体实现
public void algorithm() {
//算法A
}
}
Context context = new Context();
AbstractStrategy strategy;
strategy = new ConcreteStrategyA(); //可在运行时指定类型
context.setStrategy(strategy);
context.algorithm();
通过context选定执行哪种策略算法然后context执行
5.建造者模式
6.模板方法模式
7.代理模式
8.责任链模式
就是拦截器的链
9.抽象工厂模式
工厂的工厂
10.适配器模式
11.观察者模式
比如说nacos
12.外观模式
就是提供一个类似于 main的启动器