首页 > 其他 > 详细

设计模式04-原型模式

时间:2020-05-07 13:52:25      阅读:63      评论:0      收藏:0      [点我收藏+]

学习目标:

  》原型模式的应用场景

  》原型模式之深克隆与浅克隆

  》了解克隆是如何破坏单例的

  》原型模式的优缺点

  》掌握建造者模式和工厂模式的区别

知识前提:

  》了解并掌握工厂模式

  》已掌握单例模式

  》听说过模式,但想要深入学习

1.1.原型模式的定义

  Prototype Pattern,是指原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象

  调用者不需要知道任何创建细节,不调用构造函数。

  属于创建型模式

 

原型模式其实在开发中很常见。比如:我们对一个对象设值时,通常的做法:

先new 一个实例,然后调用set方法,传参另一个对象【原型】,调用get方法进行设值,如下所示代码:

package com.wf.prototype;

import lombok.Data;

/**
 * @ClassName ExamPaper
 * @Description 考试试卷
 * @Author wf
 * @Date 2020/5/7 12:49
 * @Version 1.0
 */
@Data
public class ExamPaper {
    private Long id;
    private String name;

    public ExamPaper copy (){
        ExamPaper examPaper = new ExamPaper();
        examPaper.setId(this.getId());
        examPaper.setName(this.getName());
        //....
        return examPaper;
    }
}

注意:

  这里使用lombok组件,依赖如下:

<dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.16.10</version>
      </dependency>

这里copy方法,就用到的原型模式。【原来的对象,生成另一个对象】

但是,它有一些问题:

  》代码使用大量get,set转换。重复度很高

  》代码不够优雅

  》其实是一种硬编码形式,当增加一个字段时,就必须得修改copy方法。

 

为了改善上面的问题,基于反射,提取bean转换工具类:

1.1.1.beanUtil工具类

 

 

 

 

 

  

  

原型模式的应用场景

  》原型模式之深克隆与浅克隆

  》了解克隆是如何破坏单例的

  》原型模式的优缺点

  》掌握建造者模式和工厂模式的区别

设计模式04-原型模式

原文:https://www.cnblogs.com/wfdespace/p/12842410.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!