把长方形的构造函数写的文艺点儿

【VS开发】【DSP开发】WinDriver简介(或介绍) WinDriver for Windows简化并自动化了用户模式Windows设备驱动程序的开发,支持设备包括PCI / CardBus / ISA/ PCI-104 / PCMCIA * / PMC / PCI-X 和 CompactPCI,无需DDK或内核级编程知识。关于USB设备驱动开发,请参见WinDriver USB for Windows。   WinDriver包含一系列 阅读详情

文艺是一种感受,它来自路过看的人。

代码也如此,代码文艺不文艺,首先要从client code看。

假设我们想要实现一个长方形的构造函数,怎么能写的文艺点儿呢?


1.普通青年直接用构造函数

当你看到 new Rectangular(2.0, 4.0)的时候,你知道2.0和4.0是什么意思吗?

幸运的是这个类只有两个构造参数,还不算太猛。

如果类的field太多,只有进入Rectangular的类实现去看了。像我这种记性不好的,说不定一会儿就要看下,隔一会儿又要看下。



public class Rectangular {

    private final double length;
    private final double width;

    public Rectangular(double length, double width) {
        this.length = length;
        this.width = width;
    }
}



2.文艺青年用builder

        rectangular()
                .length(2.0)
                .width(4.0);

这样的调用,不用再怀疑,我传入的是length还是width了。这里使用的是builder模式。

builder是一种常用的建造对象的设计模式,GoF,Effective Java中都有讲。对于多个field的类,builder是一种不错的选择。


public class Rectangular {
    private double length;
    private double width;

    public static Rectangular rectangular() {
        return new Rectangular();
    }

    public Rectangular length(double length) {
        this.length = length;
        return this;
    }

    public Rectangular width(double width) {
        this.width = width;
        return this;
    }
}



3.文艺青年用嵌套方法

rectangular(length(2.0), width(4.0));

比起Method Chaining的方式,嵌套的方法不再使用Fluent Interface。


public class Rectangular {
    private final double length;
    private final double width;

    private Rectangular(double length, double width) {
        this.length = length;
        this.width = width;
    }

    public static double length(double length) {
        return length;
    }

    public static double width(double width) {
        return width;
    }

    public static Rectangular rectangular(double length, double width) {
        return new Rectangular(length, width);
    }
}


虽然length和width不能限制他传入的一定是相应的类型。但是也提供了一种可选的方法。

同时,当对象出现层次时,这种组织方式将变得更清晰。这是因为括号自己就可以显示出这样的层次。

比如:

        container(
                rectangular(length(2.0), length(4.0)),
                rectangular(length(1.0), length(3.0))
        )

这一点儿,是单纯使用第二种方法做不到或者不容易做到的。


也许你会说,你妹哦,我还不如写个json或者其他什么plain text来构造container。

恩,你这样想的话,就有点儿到点子上了。


多的不说了,上面的三种方式仅供参考,文艺和2B也只是一线之间。


基于STM32的室内环境监测系统设计与实现 摘要 本文设计了一种基于STM32的室内环境监测系统,通过传感器实时采集温湿度、空气质量、烟雾浓度等数据,并利用Wi-Fi模块上传至云服务器。系统采用STM32F103C8T6作为主控芯片,结合DHT11、MQ系列传感器及BMP280气压传感器实现数据采集,通过ESP8266模块实现远程数据传输。用户可通过手机APP实时查看环境参数,并在数据超标时触发报警。实验表明,系统运行稳定,监测精度高,具有低成本、易扩展等特点,为改善室内环境质量提供了有效解决方案。 关键词:STM32;室内环境监测;传感器;Wi-F 阅读详情

相关推荐

分组背包问题(MCKP)三大算法对比:贪心、Dyer-Zemel和动态规划谁更强?

本文深入对比了分组背包问题(MCKP)的三大主流算法:贪心算法、Dyer-Zemel算法和动态规划。通过分析各自的原理、实现及性能表现,揭示了贪心算法速度快但非最优,动态规划精确但受限于规模,而Dyer-Zemel算法则在效率与最优性间取得了最佳平衡,是解决中等至大规模MCKP问题的首选方案。

vscode6remote的博客 226

Marvell 88E6390x交换芯片:从零构建No-CPU模式网络交换系统

本文详细介绍了如何为Marvell 88E6390x以太网交换芯片构建No-CPU模式网络交换系统。通过解析其核心价值与硬件准备,并手把手指导使用CodeBlocks、IMPGUI和SwitchGUI等软件工具进行配置代码编写、镜像生成与烧录,最终实现交换芯片脱离外部CPU独立工作,适用于成本敏感、空间受限的嵌入式网络设备设计。

plant的博客 482

矩形类的构造函数

/* * 程序的版权和版本声明部分 * Copyright (c)2013, 烟台大学计算机学院学生 * All rightsreserved. * 文件名称:a.cpp * 作 者:孔云 * 完成日期:2014年3月25日 * 版 本 号: v1.0 * 输入描述:在主函数中给出实参(四边长的值)。 * 问题描述:设计一个矩形类,定义成员函数,使用参数初始化表对数据成员初

u012369559的专栏 2208

ATE测试基础——直流参数测试

芯片测试在发展过程中诞生了许多术语,初次接触的人大部分都会被绕晕。因此为方便广大读者理解,在开始介绍测试项之前,需要对测试领域的名词进行解释。还有部分较为抽象的内容,需要略作展开。DUT——Device Under Test,正在被测试的器件Pin——器件引脚,信号引脚分为输入,输出,三态和双向四类,负责与外界进行信息交互;电源引脚分为电源和地两类,结构与信号引脚不同,负责给器件内部运行和外部输出提供电平。输入:在外部信号和器件内部逻辑之间起缓冲作用的信号输入通道;

你骄傲地飞远的博客 1万+

FM收音机调试-RDA5807M

收音机调试 IC型号:RDA5807M

mangofu的博客 6163

C++构造函数 & 拷贝构造函数 & 派生类的构造函数 & 虚继承的构造函数

构造函数 ,是一种特殊的方法 。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中 。特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载。

机器学习 4164

【报错】(pycharm运行程序)OSError: [WinError 1114] 动态链接库(DLL)初始化例程失败。 Error loading

1 报错 OSError: [WinError 1114] 动态链接库(DLL)初始化例程失败。 Error loading 2 分析原因 通过 activate Distance 进行自己创建的 Distance 虚拟环境中,输入python会显示环境中python的版本信息,再依次import,显然不会报错。 这是因为在Anaconda的环境下有支持 import torch 的 dll,而在PyCharm中使用的是自己创建的新环境,还缺少相应支持的dll,仅需在PyCharm中配置环境变量。.

静谧、淡雅 8621

C++:简单析构函数、默认构造函数、带参数的构造函数在长方形中的应用

#include<iostream> using namespace std; class Box { public: Box(); Box(int l,int w,int h); int getlength(); int getwidth(); int gethigh(); int area(); int volume(); ~Box() { cout<<"长方体"<<"("<<l...

Name Yan 449

揭秘 C++ 性能优化的终极秘籍,让你面试时应答如流

VTune Amplifier 是英特尔开发的一款强大的性能分析工具,它可以深入分析应用程序在英特尔架构上的性能瓶颈。功能特点全面的分析视角:提供了多种分析模式,如热点分析、线程分析、内存分析等。热点分析模式能快速定位程序中最耗时的代码段;线程分析模式可帮助开发者了解多线程程序中线程的执行情况、同步开销等;内存分析模式则专注于内存访问的性能,包括缓存命中率、内存带宽使用等。硬件层面的洞察:能够深入到硬件层面,分析 CPU 的微架构指标,如指令级并行度、流水线停顿等。

大模型大数据攻城狮的专栏 1150

31、MSP430FR2355时钟系统与低功耗模式解析

本文详细解析了MSP430FR2355的时钟系统和低功耗模式。首先介绍了时钟系统的组成,包括XT1振荡器、DCO、MODCLK、MCLK、SMCLK和ACLK的功能与配置方法。接着探讨了MSP430FR2355的五种低功耗模式及其配置要点,并分析了时钟系统与低功耗模式之间的协同关系。最后通过实际应用案例展示了如何在具体场景中优化系统功耗。文章旨在帮助开发者充分利用MSP430FR2355的时钟与低功耗特性,实现高性能、低功耗的嵌入式系统设计。

mars5的博客 195

矩阵和魔方

<!-- html, body {font-family:Arial,Helvetica,sans-serif; font-size:11pt} --> 矩阵和魔方 在MATLAB中,一个矩阵是一个长方形的数字阵列。特殊含义是有时附加到1*1矩阵,其是标量。而矩阵仅仅一行或一列,其是向量。MATLAB已经有其他方法聚集双数和非数数据

qpc411074777的专栏 3353

【软考高级架构】案例题考前突击6——大数据架构

前一类的数据主要由流量方以接口的方式提供(比如对接的腾讯广点通平台),后一类则是某网特有的数据,通过买家的浏览、下单、付款日志算出来。1. 在数据层面只维护一张包含所有指标的MySQL表,表中的stday字段作为索引,stday=当天的保存实时数据,stday<当天的保存离线数据。典型的大数据架构,除了Lambda架构之外,还有kappa架构,这两个架构的区别如下标所示,请补充表中空(1)-(4)第二,实时数据只对接了内部的kafka消息,没有实时的获取第三方的曝光、点击、浏览数据。

qq837993702的博客 66

python编程求长方形的面积_海式求三角形面积编程python

信息举报时间:2020-11-24 本页为您甄选多篇描写海式求三角形面积编程python,海式求三角形面积编程python精选,海式求三角形面积编程python大全,有议论,叙事 ,想象等形式。文章字数有400字、600字、800字....1随着科技的进步,计算机网络已成为人们传递的和获取信息的重要途径。近日,有科学家研究发现,原来人们眼中那些被动的、只能站在一个地方等待被砍掉或吃掉的植物,也像人...

weixin_39667652的博客 177

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

webkit 布局layout和绘制paint之间关系

原帖地址 :http://blog.sina.com.cn/s/blog_46d0a3930100dbwx.html

一天 一小步 1223

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

WebKit,为了布局,忙并美丽着 [ 邓侃 ]

WebKit,为了布局,忙并美丽着如果没有1440年以后活字印刷术的大规模普及,或许就不会有文艺复兴运动,更不会有后来的启蒙运动。如果没有这两个运动的开展,或许就不会有世界范围的工业化。在活字印刷术出现以前,每出版一本书,都必须先刻制一套模版,称为雕版,每套雕版上的每一个字,都是手工雕刻的。不仅制作雕版费时费力,而且有了错误不容易更改。活字印刷术的进步在于,可以预先批量生产各种样式和大小的字体,称

huangc1982的专栏 728

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

python生成字符画_Python生成字符画 | 文艺数学君

摘要这一篇文章介绍使用Python生成字符画的方式. 会给出简单的原理介绍和实现的方式. 最后会给出源代码的链接地址.简介这一篇介绍一下使用Python来进行字符画的生成. 这里会介绍一下生成的步骤和生成的代码. 同时会将代码的Github的链接附在最后. 最终的生成的效果会是下面的这个样子.生成的方式和原理这一部分介绍一下生成字符画的原理和代码实现. 同时会给出代码仓库的链接.源代码Github...

weixin_39636898的博客 615

《软件框架设计的艺术》试读:1.4 漂亮,真理①和优雅

我敢肯定本书的很多读者对于我美化无绪会愤愤不平。现在这样一种重量级的开发方式往往会把一个程序变成一堆垃圾,怎么能用这种开发方式取代以前那种优雅的软件开发呢?如此丑陋的应用怎么能够保证其正确性呢?其实答案是肯定的,我们只需要去仔细看一下我们大部分人现在所担心的事情。科学理念仍然深植在我们心中,并始终影响着我们的思维方式。这些由多个世纪以前的古希腊人创建的科学,仍然能在今天影响着我们如何看待真理和美丽...

weixin_30477797的博客 84

我的破板凳

我们的数学老师经常穿一身特别招灰的蓝色中山装和裤子,走哪里坐哪里,屁股上经常是土,从来不拍打,被学生起了外号“花屁股”。后来我有了经验,身体并不需要纹丝不动,也不需要浑身紧张,只要保持动态平衡就可以,就像骑自行车一样,可以放松一点。轮到大毛上台了,“在这个陪着枫叶飘零的晚秋”,《晚秋》的歌声一起,群情激昂,中排的同学纷纷站起来,后排的同学纷纷站在凳子上看,好像毛宁来了现场。王老师讲课幽默,为了把裁缝技术中的术语讲明白,把天天成套穿西装的同学晖哥叫到讲台当模特,晖哥还扭扭捏捏的,不太情愿。

minutiae的专栏 321

WebKit,为了布局,忙并美丽

如果没有1440年以后活字印刷术的大规模普及,或许就不会有文艺复兴运动,更不会有后来的启蒙运动。如果没有这两个运动的开展,或许就不会有世界范围的工业化。 在活字印刷术出现以前,每出版一本书,都必须先刻制一套模版,称为雕版,每套雕版上的每一个字,都是手工雕刻的。不仅制作雕版费

LQ0622的资料库 1101

[USACO 3.1.4]rect1(漂浮法/矩形切割)

描述 N个不同的颜色的不透明的长方形(1 <= N <= 1000)被放置在一张横宽为A竖长为B的白纸上。 这些长方形被放置时,保证了它们的边与白纸的边缘平行。 所有的长方形都放置在白纸内,所以我们会看到不同形状的各种颜色。 坐标系统的原点(0,0)设在这张白纸的左下角,而坐标轴则平行于边缘。[编辑]格式 PROGRAM NAME: rect1INPUT FORMAT:(file ...

weixin_30492047的博客 257

每日一犬 · 史毕诺犬

史毕诺犬是意大利最古老的犬种之一它们见证了意大利文艺复兴经常出现在画作中也是一种全能型的优秀猎犬史毕诺犬 身 高:60cm-70cm体 重:28公斤-37公斤寿 命:12年-15年习 性:活泼,友好喜 食:肉,杂食用 途:枪猎犬区 域:意大利宠物名片中文名:史毕诺犬英文名:Spinone Italiano昵称:意大利硬毛指示猎犬类型:大型犬它们是肌肉发达且骨骼强健的狗。精力旺盛且充沛,是一种能辛苦工作的枪猎犬。天生喜欢交际,听话而耐心的史毕诺犬能吃苦耐劳,在任何地形条件下,都是一条有经验的猎犬。&

a309147563的博客 242

代数的发展历程 | 从几何直观到符号代数的演变

……

u013669912的博客 893

AJAX框架眼镜穿搭夏天,夏日太阳镜别乱戴,时髦型男必备这几款太阳镜,防晒帅气兼具...

到了夏天,即使是在不讲究穿衣搭配的男士,也得选择一副适合自己的太阳镜,太阳镜在许多人眼中是耍帅扮酷的利器。夏日太阳镜别乱戴,时髦型男必备这几款太阳镜,防晒帅气兼具。但是越来越多的人对于太阳镜的认知可不仅仅于凹造型。男生戴太阳镜要谨慎,戴错款式分分钟翻车,这几种太阳镜都要了解。不夸张地说,太阳镜对于整体的造型是一个多样化的影响,它极大的影响了风格本身,以及脸部和整体五官给人的印象。平时温文儒雅的男士...

weixin_34060672的博客 598

白话解说,半分钟就懂---里氏替换原则

提出者的原话 A type hierarchy is composed of subtypes and supertypes. The intuitive idea of a subtype is one whose objects provide all the behavior of objects of another type (the supertype) plus something ...

瑞新の博客:bennyrhys 1313

达芬奇密码010

第三章(2)丹·布朗/著 朱振武 吴晟 周元晓/译兰登一直把杜伊勒里当作一块圣地。正是在这些花园里,克劳德·莫内对形式和颜色作了实验,实际上是催生了印象派运动。然而,今晚这个地方被不祥的氛围笼罩着。  雪铁龙现在开始左拐,沿公园...

cuanpiaozhi9344的博客 155
上一篇: 1+1/1+1/2+1/3 + ...+1/16的整数部分是多少?
下一篇: 在IntelliJ下如何做parameterize method的重构
kiwi小白
博客等级 码龄14年 153粉丝 154原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值