0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

用一个实例说明原型模式的使用方法

冬至子 来源:全栈开发的码农 作者:全栈开发的码农 2023-06-01 14:18 次阅读

原型模式是指将类设计成可复制(克隆)类型,继承Cloneable类,在调用时就可以直接通过clone()方法克隆已有对象生成新的对象。其优点是使用clone()方法创建新对象时消耗的资源比使用new方法创建新对象时消耗的资源要少,因此采用原型方法可以提高性能,减少消耗。

以下一个实例说明原型模式的使用方法,如图创建各类。PrototypeCapable接口类继承Cloneable类,而Movie和show这两个类实现PrototypeCapable接口,是具体的可复制原型类型。

图片

PrototypeCapable接口类:

package prototype;
public interface PrototypeCapable extends Cloneable{
  PrototypeCapable clone() throws CloneNotSupportedException;
}

Movie具体原型类:

package prototype;
public class Movie implements PrototypeCapable{
  @Override
  public Movie clone() throws CloneNotSupportedException{
    System.out.println(this);
    return (Movie)super.clone();  //返回超类的克隆
  }
}

Show具体原型类:

package prototype;
public class Show implements PrototypeCapable{
  @Override
  public Show clone() throws CloneNotSupportedException{
    System.out.println(this);
    return (Show)super.clone();  //返回超类的克隆
  }
}

主函数调用方式:

package main;
import prototype.*;
public class ProtoType {
  public static void main(String[] args) throws CloneNotSupportedException {
    //电影类原型
    Movie moviePrototype = new Movie();
    //克隆电影类原型
    Movie movie = moviePrototype.clone();
    System.out.println(moviePrototype);
    System.out.println(movie);
    //演出类原型
    Show showPrototype = new Show();
    //克隆演出类原型
    Show show = showPrototype.clone();
    System.out.println(showPrototype);
    System.out.println(show);
  }
}
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Cyclone
    +关注

    关注

    0

    文章

    54

    浏览量

    29967
  • protothread
    +关注

    关注

    1

    文章

    3

    浏览量

    2006
收藏 人收藏

    评论

    相关推荐

    两种LED驱动模式的功能及使用方法

    中颖MCU普通LED模块(非恒流)提供了两种LED驱动模式:亮灭模式、调光模式。两种模式的功能及使用方法简介如下。
    发表于 08-26 11:18 2453次阅读

    u***量产工具怎么,即使用方法

    u***量产工具怎么,即使用方法phison-UP10量产工具成USB-cdrom1、将下载的phison-UP10量产工具v1.78.00解压到任目录。2、运行F1_B4_v178.exe或
    发表于 04-20 23:44

    求助健伍HM-250失真仪说明书或使用方法!!!

    求助健伍HM-250失真仪说明书或使用方法!!!有的给发哦!
    发表于 03-27 19:55

    STM32_V3.4固件库使用方法实例

    STM32_V3.4固件库使用方法实例修订版.:
    发表于 05-08 10:29

    emWin实例速成教程001_GUIBuilder的使用方法

    emWin实例速成教程001_GUIBuilder的使用方法
    发表于 11-06 10:53

    emWin实例速成教程009_ListView列表框控件使用方法

    emWin实例速成教程009_ListView列表框控件使用方法
    发表于 11-09 12:40

    emWin实例速成教程010_Menu标题菜单控件使用方法

    emWin实例速成教程010_Menu标题菜单控件使用方法
    发表于 11-09 12:42

    emWin实例速成教程011_Multipage多页控件使用方法

    emWin实例速成教程011_Multipage多页控件使用方法
    发表于 11-09 12:44

    JavaScript中的Object

    次,所以 sayName 方法的引?指向的是同一个堆内存对象。● 书中是这样写的:使?动态原型模式时,不能使用对象字?量重写原型。前面已经解释过了,如果在已经创建了
    发表于 09-18 09:05

    pspice的使用方法说明

    pspice的使用方法 一、PSPICE简介电路描述集成环境有关规定二、实例功率放大器电路仿真例题及练习
    发表于 11-16 13:00 0次下载

    单片机典型模块设计实例导航(含源代码)

    单片机典型模块设计实例导航(含源代码)  《单片机典型模块设计实例导航》以单片机的功能为模块,以外围器件、相关电路设计的实际应用为内容,以
    发表于 03-08 16:11 210次下载

    什么是菊花链模式型模式

    什么是菊花链模式型模式 菊花链模式   菊花链模式是简化的级联模式,主要的优点是提供集中管理的扩展端口,对于
    发表于 12-05 09:00 8268次阅读

    一种多类原型模糊聚类的初始化方法

    一种多类原型模糊聚类的初始化方法 模糊聚类是非监督模式分类的一个重要分支,在模式识别和图像处理中已经得到了广泛的应用.但现有模糊聚类算法大都需要聚类数
    发表于 10-21 16:02 925次阅读

    嵌入式 C 语言之原型模式应用

    原型模式(Prototype Pattern),是属于创建型模式的一种。原型模式主要是使用了原型对象实例,来指定被创建对象的种类,并且通过拷
    发表于 01-12 11:14 206次阅读

    设计模式创造性:原型模式

    原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
    的头像 发表于 06-09 15:25 356次阅读
    设计<b class='flag-5'>模式</b>创造性:<b class='flag-5'>原型模式</b>