前言
设计模式是我们编程道路上绕不开的一环,用好了设计模式能够让代码拥有良好的维护性、可读性以及扩展性,它仿佛就是“优雅”的代名词,各个框架和库也都能见到它的身影。
正是因为它有种种好处,所以很多人在开发时总想将某个设计模式用到项目中来,然而往往会用得比较别扭。其中一部分原因是业务需求并不太符合所用的设计模式,还有一部分原因就是在Web项目中我们对象都是交由Spring框架的Ioc容器来管理,很多设计模式无法直接套用。那么在真正的项目开发中,我们就需要对设计模式做一个灵活的变通,让其能够和框架结合,在实际开发中发挥出真正的优势。
一、对象的实例化
1.创建对象的方式
-
new:最常见的方式(本质是构造器)
变形1 : Xxx的静态方法
变形2 : XxBuilder/XxoxFactory的静态方法
-
Class的newInstance():反射的方式,只能调用空参的构造器,权限必须是public
-
Constructor的newInstance(Xxx):反射的方式,位于java.lang.reflect.Constructor 可以调用空参、带参的构造器,权限没有要求
-
使用clone() :不调用任何构造器,当前类需要实现Clon