- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何组合两个具有相同计算但操作(读取和写入)类的不同字段的方法。一个非常简化的航空代码示例:
class TileCalculator
{
int length;
int width;
int tileLength;
int tileWidth
int cols;
int rows;
void calculateColumns()
{
this.cols = this.width/this.tileWidth;
}
void calculateRows()
{
this.rows = this.length/this.tileLength;
}
}
由于这两种方法执行完全相同的计算,但只是使用不同的字段作为输入和输出,因此将它们组合起来似乎是明智的,但我不知道如何组合。
更新:我认为我可能过于简单化了,以至于回答者试图解决具体案例。一个更现实的例子是:
void calculateCols()
{
int tileCols = width/tileWidth;
int remainder = width%tileWidth;
if (remainder==0) {
// there is an exact number of whole tiles
fullTileCols = tileCols;
firstT = tileWidth;
usedTileCols = tileCols;
} else {
// there is a remainder
fullTileCols = tileCols - 1;
firstT = (remainder+tileWidth)/2;
usedTileCols = tileCols + 1;
}
}
void calculateRows()
{
int tileRows = length/tileLength;
int remainder = length%tileLength;
if (remainder==0) {
// there is an exact number of whole tiles
fullTileRows = tileRows;
firstCut = tileLength;
usedTileRows = tileRows;
} else {
// there is a remainder
fullTileRows = tileRows - 1;
firstCut = (remainder+tileLength)/2;
usedTileRows = tileRows + 1;
}
}
我并不是说重新设计不是答案,但正如您所看到的,涉及多个字段,因此简单的返回
值可能无法解决问题。这就是为什么我使用字段而不是简单的函数,并且当前设置的可维护性是我关心的。
最佳答案
不,我不会合并它们,我会改变它们。
例如,
public int getColumns() {
return width / tileWidth;
}
public int getRows() {
return length / tileLength;
}
<小时/>
编辑
我想您可以创建一个 RowCol 类,它具有完整、第一个和已使用的字段,并且只有一个方程用于执行上述计算,并且您创建两个实例,一个用于行,一个用于包含列的实例类,但如果这样做的理由只是结合这些小方法,我质疑这样做的必要性或好处。是的,您应该遵循 DNRY 规则,但当我重复使用相同的代码 3 次或以上时,我会更担心这一点。
关于java - 如何将两种计算相同但字段不同的方法组合起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20268709/
我正在尝试执行 vagrant up 但一直遇到此错误: ==> default: IOError: [Errno 13] Permission denied: '/usr/local/lib/pyt
我在容器 div 中有一系列动态创建的不同高度的 div。 Varying text... Varying text... Varying text... Varying text.
通过 cygwin 运行 vagrant up 时遇到以下错误。 stderr: /bin/bash: /home/vagrant/.ansible/tmp/ansible-tmp-14872260
今天要向小伙伴们介绍的是一个能够快速地把数据制作成可视化、交互页面的 Python 框架:Streamlit,分分钟让你的数据动起来! 犹记得我在做机器学习和数据分析方面的毕设时,
我是 vagrant 的新手,正在尝试将第二个磁盘添加到我正在用 vagrant 制作的虚拟机中。 我想出了如何在第一次启动虚拟机时连接磁盘,但是当我关闭机器时 然后再次备份(使用 'vagrant
我是一名优秀的程序员,十分优秀!