Tag: 编码风格

是否有必要在POJO中使用getter和setter

我一直在阅读干净的代码簿,该代码簿指出该类不应暴露其数据的内部状态,只应暴露该行为。 如果一个非常简单和愚蠢的java bean暴露了getter和setter的内部状态,是否值得删除它们并使私有成员公开? 或者只是将类视为数据结构?

Java代码格式

我正在使用FreeMarker生成java代码,但由于大多数是动态生成的,因此很难控制代码的形成。 我希望代码格式化得很好。 有没有人知道lib或类似于java代码的漂亮打印机?

OO设计建议 – toString

所以我得到了Address类: class Address { private String streetAddress; private int number; private String postalCode; private City city; private State state; private Country country; } 我想让它的可读版本显示在网格列中。 什么是实现这一目标的最佳和最简洁的方法? 类Address内的toString方法( 我个人不喜欢这种方法,因为’toString’与地址没有直接关系 ) class ReadableAddressFormatter ReadableAddressFormatter ( Address addressToFormat ) public String getFormatted() 以前的类,但getFormmated将是静态的,接收Address实例并返回字符串 其他? 建议请。 我正在寻找一个好的设计,专注于清洁代码 , 解耦和可维护性 。

使用枚举序数是一种好习惯吗?

我有枚举: public enum Persons { CHILD, PARENT, GRANDPARENT; } 使用ordinal()方法检查枚举成员之间的“层次结构”是否有任何问题? 我的意思是 – 使用它除了冗长之外是否有任何缺点,当有人可能在将来意外改变时。 或者做这样的事情会更好: public enum Persons { CHILD(0), PARENT(1), GRANDPARENT(2); private Integer hierarchy; private Persons(final Integer hierarchy) { this.hierarchy = hierarchy; } public Integer getHierarchy() { return hierarchy; } }

数据传输对象中的公共字段

在我多年的编程中,我经常创建类,只需将一些变量与setter和getter组合在一起。 我已经看到这些类型的对象被称为值对象,域对象或模型对象,具体取决于它们使用它们的上下文。 通用用法的最合适的术语似乎是数据传输对象(DTO)。 这描述了仅包含访问器和增变器的POJO。 我刚刚编写了一个这样的对象,其中包含用于在图表上设置主题参数的大约50个字段。 现在我想知道如果不是生成一百个getter和setter,我应该将这些字段声明为public。 这样做违背了我的编程本能告诉我的一切,但我不能否认它会大大增加我的代码的易读性并减少类中样板代码的数量。 我可以看到不使用公共字段的唯一原因是我需要对这些字段执行任何类型的validation。 如果我们假设类型validation足以满足我的目的,那么在这种情况下使用公共字段是否可以接受面向对象设计? 公共DTO在大批量操作中表现更好吗?

Java / Swing GUI最佳实践(从代码的角度来看)

与此维基对比,我正在寻找从编码角度实现Swing GUI控件的正确方法。 我一直在寻求学习Java及其GUI工具,但我发现互联网教程之后的互联网教程将所有内容都抛到了main ,我知道这是不对的。 我也尝试过像Netbeans和其他“视觉”编辑器这样的RAD系统,但是当我编写代码时,我有一堆代码,我不知道它的一半,所以我打算学习手动代码摆动,我知道基本的控件和布局,但想以正确的方式做到。 我缺少一个模型或标准吗? 示例问题…… 扩展JFrame并创建自己的框架对象? (我会假设是的) 将主菜单封装在该框架对象中? 还是我自己创造? 等等… 如何将“View”逻辑与“Application”逻辑分开? 基本上,我正在寻找关于如何组织GUI代码的行业标准。

元编程 – 自解释代码 – 教程,文章,书籍

我正在研究改进我的编程技巧(实际上我每年都尽力减少吸收,就像我们的Jeff Atwood所说的那样),所以我正在考虑阅读有关元编程和自解释代码的内容。 我正在寻找类似白痴的指南(免费下载书籍,在线资源)。 此外,我想要的不仅仅是普通的wiki页面,还有一些语言不可知或最好是Java示例。 你是否知道有这样的资源可以有效地将所有这些资源付诸实践(我知道经验在这一切中有很多话要说但我有点想要建立避免流程错误决策 – 经验 – 良好决策的经验)? 编辑: 像Pragmatic Programmer这样的例子: …实现一种迷你语言来控制一个简单的绘图包……该语言由单个字母命令组成。 一些命令后跟一个数字。 例如,以下输入将绘制一个矩形: P 2 # select pen 2 D # pen down W 2 # draw west 2cm N 1 # then north 1 E 2 # then east 2 S 1 # then back south U # pen up 谢谢!

在Java中,为什么人们用`this`前置字段?

在引用类变量时,为什么人们会在它前面添加它? 我不是在谈论this用来消除方法参数歧义的情况,而是在它看起来没必要时。 例: public class Person { private String name; public String toString() { return this.name; } } 在toString ,为什么不引用name作为name ? return name; this.name买什么? 这是一个stackoverflow问题,其代码具有this预先挂起。

你应该在Java / C#中使用国际标识符吗?

C#和Java几乎允许在类名,方法名,局部变量等中使用任何字符。使用非ASCII字符,测试不良编辑器和分析工具的界限并使某些人难以阅读是不好的做法,还是美国的傲慢是反对的唯一论据?

Java编码风格的资源?

我发现阅读编码风格指南是了解语言及其特点的最佳方式。 我一直在努力为Java找到一份好文档,并立即回答一些问题。 首先,很长线的惯例是什么? 用Java和C / C ++编写文章会让我对这一点产生很大的困惑。 其次,创建自定义exception类的准则是什么? 我通常最终会抛出一个现有的exception,而不是创建自己的exception。 是否通常强制执行自定义exception创建?