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

    浏览量

    30093
  • protothread
    +关注

    关注

    1

    文章

    3

    浏览量

    2032
收藏 人收藏

    评论

    相关推荐

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

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

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

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

    JavaScript中的Object

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

    pspice的使用方法说明

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

    什么是菊花链模式型模式

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

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

    种多类原型模糊聚类的初始化方法 模糊聚类是非监督模式分类的重要分支,在
    发表于 10-21 16:02 1000次阅读

    示波器的使用方法

    数字万使用方法和示波器的使用方法详解。
    发表于 03-14 10:38 32次下载

    基于施耐德PLC编程软件Unity Poxl 3.0使用方法

    本文叙述了施耐德PLC编程软件Unity Poxl 3.0具体使用方法,详细讲述了软件的安装过程,怎样创建工程,最后以流程等
    发表于 10-13 16:44 6次下载
    基于施耐德PLC编程软件Unity Poxl 3.0<b class='flag-5'>使用方法</b>

    数字万表的使用方法

    数字万表的使用方法介绍。
    发表于 06-16 16:23 31次下载

    设计模式之结构型模式

    结构型模式、适配器模式)定义:适配器模式(Adapter Pattern)是作为两不兼容
    发表于 11-06 17:51 1次下载
    设计<b class='flag-5'>模式</b>之结构<b class='flag-5'>型模式</b>

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

    原型模式(Prototype Pattern),是属于创建型模式种。原型模式主要是使用了原型对象实例
    发表于 01-12 11:14 299次阅读

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

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

    各类设计模式及实现

    。最近看设计模式的书,对于每个模式C++写了小例子,加深下理解。 、设计
    的头像 发表于 11-11 11:45 737次阅读
    各类设计<b class='flag-5'>模式</b>及实现

    wps的vlookup函数的使用方法实例

    WPS Office是款功能全面的办公软件,其中的VLOOKUP函数在数据分析和处理中非常常用。在本文中,我们将详细介绍WPS Office中VLOOKUP函数的使用方法,并提供实例
    的头像 发表于 12-01 10:58 3850次阅读

    sumif函数求和的使用方法实例

    按照上述的语法填写好函数的参数即可。下面,我们通过几个实例来详细介绍Sumif函数的使用方法实例: 假设我们有
    的头像 发表于 12-03 10:36 1746次阅读