首页 > 其他分享 >[Design Pattern] Value Object

[Design Pattern] Value Object

时间:2024-08-14 14:50:11浏览次数:7  
标签:Pattern Object currency amount other Design immutable

Problem to Solve

Reparesent a value that is immutable and distinct from other objects based on its properties rather than its identity.

 

Solution

Create a class where instances are considered equal if all their properties are equals and ensure the object is immutable.

 

Use cases

Representing complex data types like money, coordinates, or dates.

 

Code

Class Money {
    constructor(amount, currency) {
        this.amount = amount
        this.currency = currency
        // Freeze the object to make it immutable
        Object.freeze(this)
    }
    
    equals(other) {
        return other instanceof Money &&
            this.amount === other.amount &&
            this.currency = other.currency;
    }
}

 

标签:Pattern,Object,currency,amount,other,Design,immutable
From: https://www.cnblogs.com/Answer1215/p/18358989

相关文章

  • Vue3的福音框架:Arco.Design
    Vue3的福音框架:Arco.Design在Vue3逐渐成为前端开发主流技术的今天,开发者们对于高性能、易扩展、且设计美观的UI框架需求日益增长。Arco.Design,作为字节跳动推出的一套企业级UI组件库,正是为满足这些需求而生。本文将从Arco.Design的起源、特点、安装与配置、组件使用、主题......
  • osg,objectarx及occt之间矩阵的转换
    osg的矩阵表达形式为osg::MatrixObjectArx的矩阵表达式为AcGeMatrix3docct的矩阵表达式分gp_Trsf及支持变形的gp_GTrsf osg矩阵转化为ObjectArxosg::MatrixmVPW;TcGeMatrix3dmatrix;for(inti=0;i<4;++i){for(intj=0;j<4;++j){matr......
  • Ant-Design-Vue快速上手指南+排坑
    AntDesignVue是一个基于Vue.js的UI组件库,它提供了丰富的组件和样式,可以帮助我们快速构建美观、高效的前端界面。以下是AntDesignVue的快速上手指南和一些常见问题的排解方法。安装AntDesignVue首先,在你的Vue项目中安装AntDesignVue。使用npm安装可以通过以下命令完......
  • 论文阅读笔记:Mixed Pseudo Labels for Semi-Supervised Object Detection
    论文阅读笔记:MixedPseudoLabelsforSemi-SupervisedObjectDetection1背景1.1动机1.2问题2创新点3方法4模块4.1预处理策略4.2PseudoMixup4.3PseudoMosaic4.4标签重采样4.5分析5实验5.1和SOTA方法对比5.2消融实验论文:https://arxiv.org/pdf/231......
  • TI 生成 TPG 流程 Test Pattern Generator
    TI生成TPGTestPatternGenerator1.主要作用:生成各种预定义的图形和模式用来检查CSI接口的图像传输质量调试和验证使用TPG生成的测试图形可以方便地验证接口的正确性和稳定性2.代码中的体现staticconstchar*constub960_tpg_qmenu[]={ "Disabled", "1vertical......
  • 设计模式 - Singleton pattern 单例模式
    文章目录定义单例模式的实现构成构成UML图单例模式的六种实现懒汉式-线程不安全懒汉式-线程安全饿汉式-线程安全双重校验锁-线程安全静态内部类实现枚举实现总结其他设计模式文章:最后定义单例模式是一种创建型设计模式,它用来保证一个类只有一个实例,并且提供一个......
  • PIX第二天2_object_group
    objectgrouping对事件东西进行归类。老式的配置方法,配置非常繁琐,配置量大可以对4种类型的object进行归类protocols(inside_protocols)tcpudpnetworksandhosts(inside_host)subnet10.0.0.0/2410.0.1.1110.0.2.11services(dmz_services)httphttpsftpicmp(ping)ec......
  • Ant Design Vue 快速上手指南 + 排坑
    引言AntDesignVue(简称ADVue)是基于Vue.js的高质量UI组件库,由蚂蚁金服设计团队开发并维护。它提供了丰富的组件和示例,能够帮助开发者快速构建出美观且易用的Web应用程序。本文将指导你如何快速入门ADVue,并分享一些常见的“坑”以及如何避免它们。安装与配置1.......
  • iOS Object-C 创建类别(Category) 与使用
    有时候使用系统给出类或者第三方的类,但是呢它们自带的属性和方法又太少,不够我们的业务使用,这时候就需要给“系统的类或者第三方类”创建一个类别(Category),把自己的想添加的属性和方法写进来.Category模式用于向已经存在的类添加方法从而达到扩展已有类的目的一:创建Cate......
  • Object
    ObjectObject类的常见方法有哪些?Object类是一个特殊的类,是所有类的父类,主要提供了以下11个方法:/***native方法,用于返回当前运行时对象的Class对象,使用了final关键字修饰,故不允许子类重写。*/publicfinalnativeClass<?>getClass()/***native方法,用于返......