设计模式
1.设计模式不是知识点
2.设计模式是一种设计经验的总结
3.设计模式用来解决某些场景下的某一类问题的—->通用的解决方案
4.有了设计模式之后 可以让代码更容易被理解 确保了复用性 可靠性 可扩展性
设计模式分为三类
1.创新型模式(5种)-------->用于解决创建对象的过程
单例模式 工厂方法模式 抽象模式 工作模式 建造者模式 原型模式
2.结构型模式(7种)-------->把类或对象通过某种形式结合在一起 构成某种复杂或合理的结构
适配器模式 装饰者模式 代理模式 外观模式 桥接模式 组合模式 享元模式
3.行为行模式(11种)------>用来解决类或对象之间的交互 更合理的优化类或对象之间的关系
观察者模式 策略模式 模板模式 责任链模式 解析器模式 迭代器模式 命令模式 状态模式 备忘录模式 访问者模式 中介者模式
单例模式
设计------>一个类只能创建一个对象 有效减小内存占用空间
设计一个系统----->百度 搜索引擎
public class Baidu{
public void 搜索(String keyword){
}
}
创建一个baidu对象 new
调用搜索的方法 做事情 方法只执行一遍
同一时间有很多很多很多的人在使用这个系统
对象------>只能创建一个 堆内存就开辟了一个空间
调用一次方法----->临时执行一次 方法执行空间就回收了
单例模式的实现
1.私有的构造方法
2.私有的静态的当前类作为属性
3.公有的静态的方法当返回值
饿汉式(立即加载) 对象启动时就加载啦
不会产生对象就没有拿来使用的问题 空指针异常
启动项目时的对象加载过多 有些还没有使用 产生服务器承载压力问题
懒汉式(延迟加载)对象什么时候用到了 才会加载
可能会由于没有操作好 导致异常(很严谨)
启动项目时候只有需要的加载 不需要的时候还没有创建 不会浪费空间
*生命周期托管(单例对象别人帮我们处理)对象加载过程交给别人
private static SingleTon; //直接=new SingleTon()饿汉式
public static SingleTon getSingleTon(){
if(single=null){
Single = new SingleTon(); //延迟加载方式 懒汉式
}
return single;
}
public static void main(String[] args){
SingleTon s1 = Singleton.getSingleTon();
}
}