首页 > 编程语言 >每日总结Java设计模式之原型模式

每日总结Java设计模式之原型模式

时间:2023-11-02 09:14:22浏览次数:43  
标签:arr Java 克隆 length Vector 原型 array 设计模式

今天完成了设计模式的原型模式实验

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

原型模式其实就是从一个对象再创建另外一个可定制的对象,而且不需知道任何创建的细节

简单说就是先创建一个原型类实例,然后通过克隆的方法来复制一个一样的新对象,这个对象和原来的对象相同或相似

[实验任务一]:向量的原型

用C++完成数学中向量的封装,其中,用指针和动态申请支持向量长度的改变,使用浅克隆和深克隆复制向量类,比较这两种克隆方式的异同。

 

 

 

实现代码如下

#include<cmath>

#include<iostream>

using namespace std;



class Vector
{

private:

    double *array = new double[4];

    double length;

public:

    Vector(double arr[4])

    {

        this->array[0] = arr[0];

        this->array[1] = arr[1];

        this->array[2] = arr[2];

        this->array[3] = arr[3];

        this->length = sqrt(((arr[0] - arr[1])*(arr[0] - arr[1])) + ((arr[2] - arr[3])*(arr[2] - arr[3])));

    }

    ~Vector()

    {

        delete[]array;

        this->length = 0;

    }

    Vector* clone()

    {

        return new Vector(*this);

    }



    Vector(const Vector& vector)

    {

        //浅克隆

        this->array = vector.array;

        this->length = vector.length;



    }

    void show()

    {

        cout << "向量长度:" << this->length << endl;

    }

};

int main()

{

    double s[4] = { 1, 2, 3, 4 };

    Vector* v1 = new Vector(s);

    Vector* v2 = v1->clone();

    v1->show();

    v2->show();

    return 0;

}

 

标签:arr,Java,克隆,length,Vector,原型,array,设计模式
From: https://www.cnblogs.com/lxh-666/p/17804630.html

相关文章

  • 每日总结Java设计模式之单例模式
    今天做了单例模式的实验代码在有些系统中,为了节省内存资源、保证数据内容的一致性,对某些类要求只能创建一个实例,这就是所谓的单例模式。单例模式有3个特点:单例类只有一个实例对象;该单例对象必须由单例类自行创建;单例类对外提供一个访问该单例的全局访问点;1.单例模式的......
  • Java while 和do while 循环
    循环是程序中的重要流程结构之一。循环语句能够使程序代码重复执行,适用于需要重复一段代码直到满足特定条件为止的情况。所有流行的编程语言中都有循环语句。Java中采用的循环语句与C语言中的循环语句相似,主要有while、do-while和for。另外Java5之后推出了for-each循环语......
  • gin框架curd 和java springboot crud 的比较及性能
    Gin框架与SpringBoot框架的CURD比较Ginvs.SpringBoot:简介Gin(Go语言):Gin是用于构建Web应用程序和API的轻量级、高性能框架,使用Go编程语言。它以简洁和高性能而闻名。SpringBoot(Java):SpringBoot是一个用于构建基于Java的Web应用程序的开源Java框架。它简化了使......
  • Java while 和do while 循环
    循环是程序中的重要流程结构之一。循环语句能够使程序代码重复执行,适用于需要重复一段代码直到满足特定条件为止的情况。所有流行的编程语言中都有循环语句。Java中采用的循环语句与C语言中的循环语句相似,主要有while、do-while和for。另外Java5之后推出了for-each循环......
  • Java笔记—Java修饰符
    Java语言提供了很多修饰符,主要分为以下两类:访问修饰符非访问修饰符1、访问控制修饰符Java中,可以使用访问控制符来保护对类、变量、方法和构造方法的访问。Java支持4种不同的访问权限。default (即默认,什么也不写):在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方......
  • Java笔记—Java修饰符
    Java语言提供了很多修饰符,主要分为以下两类:访问修饰符非访问修饰符1、访问控制修饰符Java中,可以使用访问控制符来保护对类、变量、方法和构造方法的访问。Java支持4种不同的访问权限。default (即默认,什么也不写):在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方......
  • overflow溢出属性 前端基础之JavaScript
    今日内容详细overflow溢出属性visible 默认值。内容不会被修剪,会呈现在元素框之外。hidden 内容会被修剪,并且其余内容是不可见的。scroll 内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。auto 如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。●over......
  • Java工程师必备-一些资料的整理
    [Java工程师必备+学习+知识点+面试]:包含计算机网络知识、JavaSE、JVM、Spring、Springboot、SpringCloud、Mybatis、多线程并发、netty、MySQL、MongoDB、Elasticsearch、Redis、HBASE、RabbitMQ、RocketMQ、Pulsar、Kafka、Zookeeper、Linux、设计模式、智力题、项目架构、分布式......
  • 六、Java常用类:Object,Scanner
    一、Object类Object:ClassObject是类Object结构的根。每个Class都有Object作为超类。所有对象(包括数组)都实现了这个类的方法。成员方法:publicinthashCode()用来生成对象的唯一哈希码(hashcode),它是用来快速比较两个对象是否相等的publicfinalClassgetClass()......
  • javaweb--resultMap
    resultMap可以灵活的实现数据库列名和java类中的属性名的映射 1、定义<resultMap>标签2、在<select>标签中,使用resultMap属性替换resultType属性 ......