- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这里是第一个问题,所以希望我现在没有犯太多失礼
快速版本:我想通过为对象聚合中的任意(但已知)字段创建“简写”来节省键入时间。 (我认为我说得对——仍然掌握某些术语)
我不确定是否有更好/更准确的术语来描述我在这里寻找的内容,而且我遇到的任何内容都没有在 Java 中特别提到这个概念(尽管我可能完全错过了我的文章中的一些关键内容)搜索,我觉得尽管我熟悉 Java,但这个问题总体上可能对 OOP 世界更开放)。
我很确定,如果我厌倦了写作,请说:
MyClass myClass = new MyClass();
// ... more code ....
// This is a specific string I need to print out for "Foo"
if(reasonToFoo) {
System.out.println(myClass.getSomeObject().getSubObject1().getDescription());
}
我觉得我有两个选择:我可以在同一个类中创建一个小辅助函数来“包裹”丑陋的对象引用链,使我以后输入起来更简单:
public String getFooString() {
return this.getSomeObject().getSubObject1().getDescription();
}
// ... elsewhere ...
if (reasonToFoo) {
System.out.println(getFooString());
}
我的替代方案是创建一个辅助对象,其唯一目的是简化对同一字符串的抓取
class FooString {
public static String getFrom(MyClass mC) {
return mC.getSomeObject().getSubObject1().getDescription();
}
}
// ... elsewhere ...
if(reasonToFoo) {
System.out.println(FooString.getFrom(this));
}
我的问题是:
[编辑]:刚刚意识到我可能不应该直接访问 MyClass 实例中的对象,而应该通过 getter 来访问。相应编辑
<小时/>背景:自 2000 年代初期以来,我就开始涉足以各种形式和语言编写代码(从 TI-83 BASIC 开始,扩展到那个时期的一些基本 HTML/JS/CSS,在转向 Java 和 Python 之前,我曾使用过 ActionScript 3 和 mIRC 脚本),现在是一名 28 岁的大学新生,试图更好地掌握编程的设计方面,同时致力于独立游戏开发一份梦想的工作(意识到小隔间农场编程工作对于支付账单来说更现实)。
最佳答案
从面向对象的角度来看,您的代码违反了 Law of Demeter最好要求 myclass
本身提供所需的描述。引用此 blog .
如果在代码中它看起来像这样
public class A
{
public void someMethod(B b)
{
b.getC().getD().getE().doThing();
}
}
最好将其更改为
public class A
{
public void someMethod(B b)
{
b.doThing();
}
}
关于java - 将 "shorthand"写入对象 : The hows and whys? 内的字段的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36110646/
这里是第一个问题,所以希望我现在没有犯太多失礼 快速版本:我想通过为对象聚合中的任意(但已知)字段创建“简写”来节省键入时间。 (我认为我说得对——仍然掌握某些术语) 我不确定是否有更好/更准确的
我是一名优秀的程序员,十分优秀!