- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
一位教授告诉我,使用 this
显式调用构造函数是“糟糕的编码实践”,并因此受到处罚。但是,我无法在任何 java 样式指南中找到任何我已经以某种方式查看过关于它的评论的内容。最重要的是,它似乎是在我见过的相当多的编码示例中完成的。我希望得到一些关于这是否是糟糕的编码实践以及原因的意见。
我所指的例子:
public class SomeClass {
private int a;
private int b;
public SomeClass() {
this(0);
}
public SomeClass(int a) {
this(a, 0);
}
public SomeClass(int a, int b) {
this.a = a;
this.b = b;
}
}
编辑:他的评论恰恰是“一个构造函数调用同一个类的构造函数不是好的做法。一个构造函数创建一个对象,因此调用一个调用另一个构造函数的构造函数在内存中发生了什么?一些事情。”
这是具体的代码:
public class Employee {
private String name;
private int monthlySalary;
// Default constructor
public Employee() {
this("", 0);
}
// Constructor
public Employee(String name, int monthlySalary) {
this.name = name;
this.monthlySalary = monthlySalary;
}
// annualSalary() method returns the annual salary of the employee as an int
public int annualSalary() {
return monthlySalary * 12;
}
// toString() method returns the employee name and monthly salary as a
// String in the format: name, monthly salary
public String toString() {
return "Name: " + name + "\t\tMonthly Salary: " + monthlySalary;
}
}
最佳答案
一般来说,使用this
来链接构造函数是不错的风格。在特定示例中它可能是糟糕的风格,但我只准备根据特定代码做出判断。无法判断人工示例(例如您问题中的无语义示例)。
可能您的讲师实际上已经在另一个问题上“通知”了您;例如
这两种(在我看来)都是糟糕的风格,因为它们会使您的代码更难阅读和维护。
有争议的是,当您链接构造函数时,您需要查看更多构造函数以了解正在发生的事情。但相反的论点是,让所有构造函数(人为地)独立违反了 DRY 原则。
关于java - 使用 'this' 作为不良编码习惯的显式构造函数调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37268817/
我在使用 Heroku 时遇到问题,当我尝试部署我的应用程序时,它没有运行 run assets:precompile而且我还没有在本地预编译我的 Assets ,我在 Git 中没有 list 文件
(这是为您提供围绕我的问题的背景信息。您可以跳到“问题”并阅读该内容,然后如果您想直接进入主题,则可以返回并浏览背景知识.抱歉,这是一面文字墙!) 我需要将一堆非常非常糟糕的 JSON 存储在数据库中
我是一名优秀的程序员,十分优秀!