一,单例模式
1.使用场景和特点:
某类中只要求生产一个对象实例;当对象需要被共享的场合;某类需要频繁实例化
2.分类:
饿汉式:类创建的同时就创建好了一个静态的对象供系统使用,线程安全
懒汉式:当调用getInstance()方法时候才回去创建一个实例,加了锁。但性能低
二 ,工厂模式
1.定义一个用于创建对象的接口,通过传不同类型信息,让子类决定去实例化那个类。底层是所有工厂都是实现一个统一的接口。不需要了解创建过程,知道自己需要什么对象名称就能创建对应的东西。
工厂模式:主要功能就是帮助我们实例化对象,通过工厂代替new操作。
三,外观模式
1.定义一个外层大接口,里面处理每个业务的接口。提高安全性,灵活性
四,建造者模式
1.不用去new对象。通过工厂去创建需要的符合对象。这个类里面集成了很多功能,能够创建很多复杂的东西。
2.对比工厂模式:工厂是只针对一个特定的对象,特定的产品
五,代理模式
1.相当于代理商,我们买票可以去火车站也可以去代售点。
就是原有的方法需要修改适配新的需求,可以 用代理模式对这个方法结果修改已适应新需求。便于维护和更加清晰。底层不变,多了一层代理优化。
六,mvc模式
1.类似于model view controller
七,策略模式 https://mp.weixin.qq.com/s/eTg7pvOUyMW_EdU17qjhaQ
1.定义很多算法封装,加减乘除,用户更具需要自己去决定使用哪个。if--else优化可以使用;太多了才用组合模式。少用继承多用组合
八,组合模式
1.一个类中有很多属性,且包括这个类也是一个属性。然后创建可以有父子节点关系图。类似二叉树结构。层级分明。对象中有对象,然后对象中对象是子节点。
九、模板模式: https://mp.weixin.qq.com/s/oHs8QeMl5ZKaJi6Ton8NWA
定义一个模板的父类骨架,父类包含很过基础的方法。子类可以扩展自己在不同方法中一些具体的步骤。缺点就是 ,如果父类需要添加一个基础的方法,子类也需要都修改。
十。观察者模式:在对象之间定义了一对多的依赖,当一个对象改变了状态,依赖他的对象会收到通知并自动更新