设计模式
单例模式见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);
-

浙公网安备 33010602011771号