设计模式

单例模式见JUC文档

工厂模式:详见D:\Develop\apache-maven-3.8.6-bin\repository   _23\factory   总归简单工厂好用

  简单工厂模式

  方法工厂模式

  抽象工厂模式 :手机  路由器      首先手机和路由器的接口里面有方法,然后各个品牌的手机和路由器实现这两个接口,  然后一个大的工厂里面有手机和路由器的方法

                  然后各个品牌的工厂去实现这个大工厂,  然后测试的时候  new 对应的工厂,就可以调用手机或者路由器,然后调用里面的方法

 

建造者模式: 详见 builder\demo1 和 demo2

原型模式:创建复杂对象的时候copy两外一个复杂的    详见CopyDemo

 

       实现一个Cloneable   重写clone方法,如果属性有引用类型,就需要重写clone方法

       大多数公司,原型模式+工厂模式   从new到原型模式

 

以上是创建型模式

以下是结构型模式

  适配器模式:详见adapeter

   桥接模式:解决多继承的问题  详见bridge

   代理模式:可以使真实角色操作更加纯粹,不用去关注一些公共业务,公共业务交给代理角色,事先分工,代理角色可以有扩展业务,一个真实角色一个中介,代码量翻倍

       房东出租房屋,中介可以带客户看房、签合同、收中介费等等

       详见acting

  动态代理:实现InvocationHandler接口创建代理类     详见dongtai

    生成得到代理类:

      InvocationHandler handler = new MyInvocationHandler(...);

  •      Class<?> proxyClass = Proxy.getProxyClass(Foo.class.getClassLoader(), Foo.class);
         Foo f = (Foo) proxyClass.getConstructor(InvocationHandler.class).
                         newInstance(handler); 
    • 或更简单地:
        Foo f = (Foo) Proxy.newProxyInstance(Foo.class.getClassLoader(),
                                                new Class<?>[] { Foo.class },
                                                handler); 
     
posted @ 2022-09-16 22:59  皇天不负有心人  阅读(25)  评论(0)    收藏  举报