Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Android设计模式应用---原型模式

Android设计模式应用---原型模式

作者头像
wust小吴
发布于 2019-07-08 08:53:58
发布于 2019-07-08 08:53:58
4410
举报
文章被收录于专栏:风吹杨柳风吹杨柳

原型模式Prototype

在设计模式那本书里或者网上的讲解中,原型模式其实就是拷贝,分为深拷贝和浅拷贝

该模式的思想就是将一个对象作为原型,对其进行复制、克隆,产生一个和原对象类似的新对象

在java中对象有一个方法就是  clone()方法

曾经有人问,怎么不使用new 就生成一个对象,两种方法,就是clone()和反序列化  可以减少new的使用,因为new 是强引用类型

浅复制:将一个对象复制后,基本数据类型的变量都会重新创建,而引用类型,指向的还是原对象所指向的。做法就是调用super.clone()方法就可以

深复制:将一个对象复制后,不论是基本数据类型还有引用类型,都是重新创建的。简单来说,就是深复制进行了完全彻底的复制,而浅复制不彻底。做法必须调用  流的形式进行复制:首先采用读入拿到属性的二进制流,然后采用输出把二进制流输出到要拷贝的对象

他们的主要区别在于  引用类型的属性

Android里面的Intent类就是使用原型模式的

public class Intent implements Parcelable,Cloneable{

    public Object clone(){

return new Intent(this);

    }

}

原型模式就是获取相同属性的对象,很好理解

LayoutInflater 里面也有用到一个原型模式的例子

public LayoutInflater cloneInContext(Context newContext) { 

       return new PhoneLayoutInflater(this, newContext);

}

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016年04月03日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
PHP设计模式之原型模式
原型模式其实更形象的来说应该叫克隆模式。它主要的行为是对对象进行克隆,但是又把被克隆的对象称之为最初的原型,于是,这个模式就这样被命名了。说真的,从使用方式来看真的感觉叫克隆模式更贴切一些。
硬核项目经理
2019/08/30
5330
PHP设计模式之原型模式
原型模式
实现 Cloneable 接口,重写 clone 方法。要一个实例,不执行构造方法重新创建,而是从当前存在的对象克隆。
三流之路
2022/10/04
1460
Java的二十三种设计模式(原型模式(Prototype))
原型模式虽然是创建型的模式,但是与工程模式没有关系,从名字即可看出,该模式的思想就是将一个对象作为原型,对其进行复制、克隆,产生一个和原对象类似的新对象。本小结会通过对象的复制,进行讲解。在Java中,复制对象是通过clone()实现的,先创建一个原型类:
红目香薰
2022/11/29
2090
设计模式之原型模式(Prototype)
我们知道,一个类的定义中包括属性和方法。属性用于表示对象的状态,方法用于表示对象所具有的行为。其中,属性既可以是Java中基本数据类型,也可以是引用类型。Java中的浅复制通常使用clone()方式完成。
用户1205080
2018/12/05
3340
java设计模式之原型模式|浅复制和深复制的了解
原型模式是一种比较简单的模式,也非常容易理解,实现一个接口,重写一个方法即完成了原型模式。在实际应用中,原型模式很少单独出现。经常与其他模式混用,他的原型类Prototype也常用抽象类来替代。
小小鱼儿小小林
2021/05/06
5940
java设计模式(4)-原型设计模式
这篇推文学习创建型模式最后一种-原型模式,该模式的思想是将一个对象作为原型,对其进行复制、克隆,产生一个和原对象类似的新对象,以便使用
爱敲代码的猫
2019/10/17
4990
【设计模式自习室】原型模式
原型模式要求对象实现一个可以克隆自身的接口(类型)。这样一来,通过原型实例创建新的对象。
蛮三刀酱
2019/12/30
4410
【设计模式自习室】原型模式
23种设计模式之原型模式
在有些系统中,存在大量相同或相似对象的创建问题,如果用传统的构造函数来创建对象,会比较复杂且耗时耗资源,用原型模式生成对象就很高效,就像孙悟空拔下猴毛轻轻一吹就变出很多孙悟空一样简单。
Java技术债务
2022/09/26
2200
23种设计模式之原型模式
大话设计模式笔记(六)——原型模式
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
逝兮诚
2019/10/30
4110
23种设计模式之——原型模式
原型模式其实就是一个对象在创建另一个可定制的对象,而且不需要指定任何创建的细节。Java提供了Coneable接口,其中有一个唯一方法Clone(),实现这个接口就可以完成原型模式了。
良月柒
2019/03/19
3570
图解Java设计模式之原型模式
现在有一只羊tom,姓名为 : tom,年龄为 :1,颜色为 :白色,请编写程序创建和tom羊属性完全相同的10只羊。
海仔
2020/03/19
4790
图解Java设计模式之原型模式
Java设计模式(五)之创建型模式:原型模式
原型模式主要用于对象的复制,它的核心是就是类图中的原型类Prototype。Prototype类需要具备以下两个条件:
全栈程序员站长
2021/04/09
3130
Java设计模式(五)之创建型模式:原型模式
设计模式——原型模式
设计模式——原型模式
Java架构师必看
2021/05/14
3160
设计模式——原型模式
设计模式---原型模式
原型模式(Prototype Pattern):使用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。原型模式是一种对象创建型模式。
大忽悠爱学习
2021/11/15
4120
Java经典设计模式之五大创建型模式(附实例和详解)
(1)创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
Java团长
2018/08/06
6230
原型模式概述
原型模式(Prototype Pattern)是一种创建型设计模式,它允许通过复制已有对象来创建新对象,而不是直接通过实例化类来创建。 这种模式提供了一种创建对象的快捷方式,尤其适用于对象创建成本高或需要深复制的场景。
码事漫谈
2024/12/20
1360
原型模式概述
设计模式-原型模式示例
在这个示例代码中,我们定义了一个原型接口 Prototype 和一个具体的学生类 Student,该类实现了原型接口并重写了 clone() 方法。在客户端代码中,我们创建了一个原型对象 stu1,并通过克隆原型对象来生成一个新的学生对象 stu2,然后修改 stu2 对象的属性并打印结果。由于 stu1 和 stu2 对象是互相独立的,因此修改 stu2 的属性不会影响 stu1 对象的属性。
堕落飞鸟
2023/05/03
2020
设计模式—— 十三 :原型模式
原型模式的核心是一个clone方法,通过该方法进行对象的拷贝,Java 提供了一个Cloneable接口来标示这个对象是可拷贝的,Cloneable接口的作用是标记,在JVM中具有这个标记的对象才有可能被拷贝。那怎么才能从“有可能被拷贝”转换为“可以被拷贝”呢?方法是覆盖 clone()方法:
三分恶
2020/07/16
5810
Java设计模式之(四)——原型模式
Prototype Design Pattern:用原型实例指定创建对象的种类, 并且通过拷贝这些原型创建新的对象。
IT可乐
2021/11/24
3100
Java设计模式简介(一):创建型模式
设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。项目中合理的运用设计模式可以完美的解决很多问题,每种模式在现在中都有相应的原理来与之对应,每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决方案,这也是它能被广泛应用的原因。
全栈程序员站长
2021/04/09
3470
Java设计模式简介(一):创建型模式
相关推荐
PHP设计模式之原型模式
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档