设计模式总结: 5种创建型,7种结构型,11种行为型

设计模式总结:  5种创建型,7种结构型,11种行为型

1.1  工厂方法模式
    工厂方法模式(根据参数不同,工厂方法返回不同的产品对象),
    多个工厂方法模式(创建不同产品不需要参数),
    静态工厂方法模式(将工厂方法改为静态的,不需要实例化类)
1.2  抽象工厂:适合产品多变的情况,要生产新的产品就必须在工厂类里面加生产的方法,违背开闭原则。抽象工厂,
       增加一个 工厂类接口,一个接口方法; 各种产品实现这个工厂接口,生产自己对应的产品。
1.3   单例模式 :Singleton  (懒汉式&饿汉式)
特殊的工厂方法模式,一个类只有一个实例:
                           1. 拥有一个私有的静态实例;
                           2. 拥有 私有的默认构造函数;
                           3. 静态工厂方法,如果是懒汉式的必须同步的,防止多线程同时操作;
                           4.重写clone()函数,
返回当前实例对象,默认clone()创建新实例;
public class SingletonFactory{
           //1.私有的防止外部变量引用;
             private static SingletonFactory _instance=null;
            //2.私有的默认构造函数,防止使用构造函数实例化;
             private SingletonFactory(){ 
                     }
            //3.单例静态工厂方法,同步方式多线程同时执行;
synchronized public  static SingletonFactory getInstance(){
            if(_instance==null){
                    _instance=new SingletonFactory();
                        }
                        retrun _instance;
            }
        //4.重写克隆函数
public SingletonFactory  clone(){
        return getInstance();
                        }
}
    
1.4  建造者模式    StringBuilder
public class Client {
    public static void main(String[]args){
        Builder  builder = new  ConcreteBuilder();//接口buider,实现接口的具体建造者ConcreteBuilder,导演者Director,
        Director director = new  Director(builder);
        director.construct();
        Product product =  builder.retrieveResult();
        System.out.println(product.getPart1());
        System.out.println(product.getPart2());
    }
}


1.5 原型模式复制一个已经存在的实例来返回一个新的实例,而不是新建

------------------------------------------------------------------------------------------------------------
2.1   适配器模式:

类的适配器:对类进行适配。A继承B,实现接口C。
对象的适配器:对对象进行包装;A实现接口C,不继承B,包含一个B的对象;
接口的适配器:对接口抽象化。A实现所有接口,为每个接口提供一个默认实现;
缺省适配器模式:
      (A extends AbstractB implements interfaceC,那么A即可以选择实现(@Override)接口interfaceC中的方法,也可以选择不实现;A即可以选择实现(@Override)抽象类AbstractB中的方法,也可以选择不实现)

2.2  装饰器模式:(io流)
一个接口A,一个接口A的实现类B,一个装饰器C。C实现了A,并且有一个私有的类型为A的成员,构造函数初始化它。

适配器模式是将一个类A转换为另一个类B;
装饰器模式是为一个类A增强新的功能,从而变成B;
代理模式是为一个类A转换为操作类B;


2.3  代理模式
       
 Proxy实现接口Sourcable,含有一个Source对象

2.4  外观模式 jdbc
代理模式(一对一)发展而来的外观模式(一对多)
客户端访问子系统中的各个类,高度耦合。中间加一个统一接口,降低耦合度,客户端访问该类,该类调用子系统中的各个类。

2.5  桥接模式  jdbc
客户端通过访问 访问目标实现类,桥抽象化类包含目标接口类对象,可以赋值 目标接口类的实现类的实例化给他,通过桥调用不同的目标实现类对象。
2.6 组合
2.7 享元
-----------------------------------------
父类与子类之间:
1.策略模式:【实现C中函数指针的功能,不同的比较策略】  comparable & Comparator);

2.模板方法模式

两个类之间:
3.观察者模式

4.迭代子模式 (容器与容器遍历)

5.责任链模式 (责任链模式) 串的替换---可以使用链式操作)
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值