对创建型模式的再思考

1.简单工厂模式:只是将对象从客户端剖离,交给工厂创建,如果要创建的对象很多,工厂类就会很庞大并且增加判断逻辑。

2.工厂方法模式:对每个对象单独建立工厂类,明确类的职责,但当对象很多时仍需要编写很多额外代码。可利用Java反射机制。

3.抽象工厂模式:当需要创建的对象之间存在相互关系,可以分组,每组实现一个具体的工厂类继承抽象工厂类。但如果业务改变,需要修改抽象工厂类设计,还要修改具体工厂类设计,代码维护量加大。

4.创建者模式:将复杂对象的构建与其表示分离,使得同样的创建过程可以创建不同的表示,组装类负责组装对象的组装,客户端只负责调用组装类,明确了类的职责。当有多个差异较大的对象需要创建者时,可以结合工厂模式。

5.原型模式:使用对象的克隆,创建与原型对象具有类似行为的新对象。缺点是在使用clone方法时会衍生出一些深度克隆的问题,还要考虑StringBuffer,String类在克隆时的例外情况。

6.单例模式:当需要一个类只有一个实例存在,只提供一个全局调用指针时,要使用单例模式。使用静态变量实现。在使用单例模式时,需要考虑很多例外,比如多线程环境和对象序列化和反序列化时有可能使得单例类出现多个实例的情况。典型应用在日志管理,数据库连接中。

你可能感兴趣的:(Design,Patterns)