创建型模式:
1.工厂模式:
产品父类,产品子类A 产品子类B
工厂生产以上所有产品
用户直接从工厂拿对应需求产品
2.Builder
强行将产品类的构造过程分布的方法,也适合构造过程步骤较多的方法:EG :如果要喝星巴克的某种咖啡,首先需要星巴克这个父类,然后需要咖啡和奶茶这两个子类,里面有父类“温度”“品种”的接口实现,同时有GETDrink的函数.然后就是服务员类,传入对应的builder然后返回对应的drink.
3.工厂方法模式:
是工厂模式的加强版,不只是产品有抽象,工厂也有抽象。
一个产品对应一个工厂
4.抽象工厂模式:
产品有N个大类,工厂有N个属性,比如水果是产品抽象,有香蕉和苹果两个大类,工厂有南方,北方,两个属性。相当于有4中水果,那么每增加一个工厂可以增加2中水果。
5. 观察者模式:Observer,Observable 这是JAVA自带的方法,也可以自己写接口。
自己写接口Observable.包含三个方法:1.register(Observer o)方法 2.remove(Observer o)方法,3.notify方法
写Observer接口:包含一个方法: update(Obj obj);
写一个bean对象A。
写一个类B继承Observer类,里面重写update 方法。也就是收到更新之后的动作。
最后是在Publisher继承Observer 类 Publilsher.register(B)。当产生一个新的A时,调用Publisher.notify(){ B.update(A)方法。并传入对象。
6.装饰者模式:装饰者模式主要实现的功能是,产品A,经过DECORATOR1,具备了decorator1赋予它的功能。以此类推。可以不断包装进阶。
核心方法是产品A的show方法()。在主Decorator中只有show的抽象方法,需要强制子类继承。。继承类中实现该接口,并有添加新特性的方法,在show方法 中调用,其中Decorator继承产品A,那么所有的类最后都继承产品A。
该模式的特点就是: 每一个类都直接或间接继承于产品A。只有类,没有接口
7.模板方法模式:最主要的特点,他决定了方法的调用顺序,但是不规定方法的内部细节。
8.单例: 饿汉式: private fianl static A a= new A();
private A(){}
public static A getA(){
return A; }
懒汉式: private fianl static A;
private A(){}
public static A getA(){
if(a== null){
a= new A();}
return a;
双重锁: