类设计技巧

limp      2022-02-10     766

关键词:

一定要保证数据私有

数据私有时不影响类的使用者;发生了BUG也易于追踪调试。

一定要对数据进行初始化

实例化对象时尽管有默认值,但是我们还是要对数据进行显式初始化。可以在定义时进行默认值初始化,也可以在所有构造器中进行初始化。

不要在类中使用过多的基本数据类型

用一个类代替多个相关的基本类型,更易于理解和扩展。例如类中有以下几个基本类型:城市、街道、门牌、邮编,都是和地址相关的,我们可以用一个“地址”类代替。这样易于理解,也便于以后地址的扩展和修改。例如处理一个国际化地址。

不是所有的域都需要域访问器和修改器。

有些域是实例化后禁止更改的,例如员工入职后,入职时间是禁止更改的。有些域不希望用户看到,例如部门ID。

将职责过多的类进行分解

如果明显可以将一个类拆分为两个更为简单的类,那就进行拆分。

类名和方法名要能体现它们的职责

类名的良好习惯是采用一个名词(Order)、前面有形容词修饰的名词(RushOrder)、或动名词(有“ -ing” 后缀)修饰名词(例如, BillingAddress )。
对于方法来说,习惯在访问器前面加get,在更改器前面加set。

优先使用不可变的类。

有的类调用其方法更改,会返回一个新的对象,就是不可变的类。例如java中LocalDate。而有些类的方法可以修改其内部数据,这样的类就是可变的。
如果类对象是可变的,在进行多线程变成的时候,多个线程同时访问一个对象,则会出现不可控的情况。



编写高效的java代码:常用的优化技巧

...种重要方式。代码结构的优化包括优化算法、数据结构和设计模式等。以下是一些优化技巧。1.1优化算法和数据结构优化算法和数据结构是提高Java程序性能的一种重要方式。对于一些算法复杂度较高的代码,可以通过改变算法... 查看详情

李瑞红201771010111(代码片段)

...包装器和自动打包5.5参数数量可变的方法5.6枚举类5.7继承设计的技巧5.1类、超类和子类5.2Object:所有类的超类5.3泛型数组列表5.4对象包装器和自动打包5.5参数数量可变的方法5.6枚举类5.7继承设计的技巧1.继承(继承(inherit 查看详情

设计模式之美——20条编程技巧

关于命名命名的关键是能准确达意。对于不同作用域的命名,我们可以适当地选择不同的长度。作用域小的变量(比如临时变量),可以适当地选择短一些的命名方式。除此之外,命名中也可以使用一些耳熟... 查看详情

4对象与类

1、面向对象程序设计概述2、使用预定义类3、用户自定义类类之间的关系依赖("uses-a")聚合("has-a")继承("is-a")4、静态域与静态方法5、方法参数6、对象构造7、包8、类路径9、文档注释10、类设计技巧 查看详情

设计模式——代理模式(代码片段)

...一种代理一控制这个对象的访问。代理模式是一种基本的设计技巧。许多模式,如策略模式,状态模式,访问者模式本质上是特殊场合采用的代理模式。代理模式可以提供非常好的访问控制。代理模式通用类图角色定义(1)Subje... 查看详情

设计模式之单例模式

设计模式是前辈们对代码日积月累的总结,形成的一种良好的编程思想和技巧。      单例模式,使用非常广泛,本篇将介绍三种常用的单例模式的实践:类加载时初始化类对象(也叫饿汉模式)、延迟加载... 查看详情

分类网络设计技巧

Resnet网络:两种不同设计结构的误差对比疑问1:残差网络用于解决深度网络的退化问题,那么对于浅层网络也有效果吗?疑问2:不同的loss函数如何影响整个网络的更新的?  查看详情

c++设计模式类库loki介绍与用法

C++设计模式类库Loki介绍与用法Loki是由Andrei编写的一个与《Modern C++ Design》(C++设计新思维)一书配套发行的C++代码库。它不仅把C++模板的功能发挥到了极致,而且把类似设计模式这样思想层面的东西通过库来提供。本篇... 查看详情

毕业设计答辩技巧分享

毕业设计答辩技巧一、常见问题二、答辩技巧三、论文答辩——图表穿插四、论文答辩——语流适中五、论文答辩六、论文答辩七、论文答辩八、论文答辩——紧扣主题九、论文答辩——人称使用完整版答辩技巧文档一、常见问... 查看详情

用php的反射实现委托模式的讲解_php技巧-php

...而好学论坛www.piaodoo.com欢迎大家相互学习委托模式是软件设计模式中的一项基本技巧。在委托模式中,有两个对象参与处理同一个请求,接受请求的对象将请求委托给另一个对象来处理。委托模式是一项基本技巧,许多其他的模... 查看详情

markdown设计师的sass技巧(代码片段)

查看详情

mysql库表设计小技巧(代码片段)

前言:在我们项目开发中,数据库及表的设计可以说是非常重要,我遇到过很多库表设计比较杂乱的项目,像表名、字段名命名混乱、字段类型设计混乱等等,此类数据库后续极难维护与拓展。我一直相信只有优秀的库表设计才... 查看详情

mysql库表设计小技巧(代码片段)

前言:在我们项目开发中,数据库及表的设计可以说是非常重要,我遇到过很多库表设计比较杂乱的项目,像表名、字段名命名混乱、字段类型设计混乱等等,此类数据库后续极难维护与拓展。我一直相信只有优秀的库表设计才... 查看详情

eclipse的使用技巧

...级进行显示,方便我们查看项目结构。Web项目一般使用MVC设计模式,进行分层实现功能,M指Model层(bean,model,pojo),即模型层--主要用于放模型类。V指view--视图的意思,即视图层就是我们放页面的地方,C指Controller(Servlet,Se... 查看详情

两个技巧一个图表设计工具,教你快速突出图表重点

...达到图表的目的。今天就跟大家分享两个技巧和一个图表设计工具。在讲图表设计工具之前,先来说一下图表设计的两个技巧。我们需要将数据的差异部分、体现洞察信息的内容利用明显不同的颜色、形状、 查看详情

分享4个新手快速晋升ui设计师的小技巧

很多学设计的小伙伴在入门的时候不知道从何入手。本文就为大家总结一下UI设计学习的的4个技巧,相信对初学者一定非常有用。学习ui设计的小技巧之一:软件学习UI设计要学的东西很多,软件是基础的东西,要想做出好的UI设... 查看详情

fpga-硬件设计技巧

1、管脚兼容性设计  FPGA在芯片选择的时候尽量选择兼容性好的封装,那么在硬件设计时,就要考虑如何兼容多种芯片问题;在相同封装、兼容多个型号的FPGA设计中,一般原则是按照通用IO数量少的芯片来设计电路2、根据电路... 查看详情

设计 MySQL 数据库的技巧

】设计MySQL数据库的技巧【英文标题】:TipsondesigningaMySQLdatabase【发布时间】:2016-05-3115:26:30【问题描述】:我正在为一个列表网站设计一个mysql数据库。这是我第一次,我对此做了一些谷歌搜索:)我想交叉检查我的方法是否有任... 查看详情