单例:单实例,自我实例化,提供全局访问点
简单工厂:一个静态方法创建一种实例或通过传入参数决定生产的实例,不方便扩展,需修改代码
工厂方法:不同类型实例由不同工厂创建
抽象工厂:考虑对象有不同维度(如车有类型和颜色),那么工厂负责产生一类产品(如工厂产生红车,白车,黑车),那么类型上可以通过新的车工厂进行扩展
建造者:将复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示,构建过程被隐藏(create,build方法内),先定制你需要构建对象的特殊属性再进行构建,而不是创建对象后去定制
原型:
protected方法只能在同包类和子类内部访问
考虑用Object的clone方法进行浅复制,不会执行构造函数
1调用此方法的类实现Cloneable接口,否则调用方法抛出CloneNotSupportedException
2 此方法protected,所以必须提供一个public方法以便在内部进行super.clone调用Object的clone方法