JavaSE基础 (十三)

设计模式

                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();
    }
}