设计模式用来解决某些场景下的某一类问题的;通用的解决方案;
有了设计模式之后 可以让代码更容易被理解 确保了复用性 可靠性 可扩展性;
设计模式分为三类
1.创建型模式(5种);用于解决对象创建的过程;
单例模式 工厂方法模式 抽象工厂模式 创造者模式 原型模式
2.结构型模式(7种);把类或对象通过某种形式结合在一起 构成某种复杂或合理的结构;
适配器模式 装饰者模式 代理模式 外观模式 桥接模式 组合模式 享元模式;
3.行为型模式(11种);用来解决类或对象之间的交互 更合理的优化类或对象之间的关系;
观察者模式 策略模式 模板模式 责任链模式 解释器模式 命令模式 状态模式 备忘录模式 访问者模式 中介者模式;
==============================================================
单例模式(Singleton)
设计-->一个类只能创建一个对象 有效减少内存占用空间;
单例模式的实现;对象的加载--->饿汉式(立即加载);懒汉式(延迟加载);生命周期托管(单例对象别人帮我们处理)
1.私有的构造方法;
2.私有的静态的当前类对象作为属性;
3.公有的静态方法,返回当前类对象;
对象的加载
饿汉式(立即加载);对象启动时候就加载啦,不会产生对象没有就拿来使用的问题 空指针异常;启动项目加载的对象过多 有些还没有使用 产生服务器承载压力的问题;
懒汉式(延迟加载);对象什么时候用到了,才会加载;可能会由于没有操作好 导致异常(很严谨);启动项目时候只有需要的加载 不需要的还没有创建 不会浪费空间;
生命周期托管(单例对象别人帮我们处理);对象加载过程交给别人;
适配器模式 Adapter
定义一个规则-->和尚 吃斋 念经 打坐 撞钟 习武
适配器(通常是一个抽象类)添加某些具体实现(方法内部抛出异常)
鲁智深
策略模式 Strategy---行为模式
用来解决 执行流程固定 执行的结果由于提供了不同的策略而不同;
人--抽象类 接口(不能产生对象) 传递一个子类对象
人类 提供策略--抽象类、抽象方法;
具体类 实现策略;(老年人、vip、年前人)