美文网首页
设计模式(7)-原型模式

设计模式(7)-原型模式

作者: zhglance | 来源:发表于2019-06-21 14:57 被阅读0次

原型模式(Prototype Pattern)是用来创建重复的对象,降低创建对象的代价。

一、需求举例:

项目中需求开发应用场景:
1.简单的项目开发由初级工程师完成;
2.高难度的项目开发由高级工程师完成。

二、类图

三、代码实例

1.工程师抽象类:Engineer

package com.lance.prototype;

public abstract class Engineer implements Cloneable {

    private String duty;

    public String getDuty() {
        return duty;
    }

    public void setDuty(String duty) {
        this.duty = duty;
    }

    private String engineerName;


    public String getEngineerName() {
        return engineerName;
    }

    public void setEngineerName(String engineerName) {
        this.engineerName = engineerName;
    }

    abstract void develop(String program);

    @Override
    public Object clone() {
        Object clone = null;
        try {
            clone = super.clone();
        } catch (CloneNotSupportedException e) {
            e.printStackTrace();
        }
        return clone;
    }

}
  1. 工程师实现类:EngineerImpl
package com.lance.prototype;

public class EngineerImpl extends Engineer {

    @Override
    public void develop(String program) {
        System.out.println(this.getDuty() +":"+ this.getEngineerName() + " develop " + program);

    }
}

3.主类:PrototypePattern

package com.lance.prototype;

public class PrototypePattern {

    public static void main(String[] args) {


        System.out.println("==========start==========");

        Engineer juniorEngineer = new EngineerImpl();
        juniorEngineer.setDuty("工程师");
        juniorEngineer.setEngineerName("张三(初级)");
        juniorEngineer.develop("easy program");

        System.out.println("=======================");

        Engineer seniorEngineer = (EngineerImpl)juniorEngineer.clone();
        seniorEngineer.setEngineerName("李四(高级)");
        seniorEngineer.develop("difficult program");

        System.out.println("==========end==========");


    }
}

输出结果:

==========start==========
工程师:张三(初级) develop easy program
=======================
工程师:李四(高级) develop difficult program
==========end==========

相关文章

  • 设计模式-面相对象7个原则

    设计模式-面相对象7个原则设计模式-创造性模式 单例 原型 工厂 建造者设计模式-设计模式 - 结构性模式 代理 ...

  • JavaJavascript基础进阶(十七)JS中常用的设计模式

    单利设计模式、构造原型设计模式、发布订阅设计模式、promise设计模式 单利模式 构造原型设计模式 最贴近OOP...

  • 23种常规设计模式

    常规设计模式 设计模式概述 创建型模式:5单例模式、工厂模式、抽象工厂模式、建造者模式、原型模式 结构型模式:7适...

  • iOS 命令模式

    设计模式分类 创建型模式->5种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式 结构型模式->7种:...

  • 设计模式学习

    设计模式分类 创建型模式(5种):工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式; 结构型模式(7种)...

  • 设计模式

    设计模式的分类 创建型模式(5种) 工厂方法模式、抽象工厂模式、单利模式、构建者模式、原型模式。 结构型模式(7种...

  • Spring 准备内容

    准备内容 原型设计模式 PropotypeModle 原型模式也属于创造型设计模式,用原型实例指定创建对象的种类,...

  • 设计模式问答(一)

    设计模式问答(一) 什么是设计模式?您能说出工厂模式、抽象工厂模式、创建者模式、原型模式、原型模式的潜复制及深复制...

  • 设计模式小结

    设计模式 7 大原则 创建型 单例模式 原型模式 创建者模式(生成器模式) 简单工厂模式 工厂方法模式 抽象工厂模...

  • 原型和原型链篇

    原型和原型链 1.理解原型设计模式以及JavaScript中的原型规则 原型设计模式JavaScript是一种基于...

网友评论

      本文标题:设计模式(7)-原型模式

      本文链接:https://www.haomeiwen.com/subject/fcuyqctx.html