gpt4 book ai didi

java - 根据最佳实践,我应该在哪里放置用于 GUI 测量的 JavaFX 常量?

转载 作者:行者123 更新时间:2023-12-02 12:14:51 24 4
gpt4 key购买 nike

编辑:我看过这个帖子:What is the best way to implement constants in Java?已经。他们似乎关注的是您是否应该使用带有常量的接口(interface)。我想知道如果整个类没有使用常量,我应该将它们放置在哪里。

<小时/>

如果我正在设计一个使用 Shape 包 (javafx.scene.shape.[whatever]) 制作的 GUI,我应该如何放置用于调整它们大小的常量变量?

类范围

我被教导常量应该始终位于类的顶部,这会给我这样的东西:

public class Foo extends Group{
private final double WIDTH = 100;
private final double HEIGHT = 100;
private final double PADDING = 10;
...
}

当然,我可能会将我的公共(public)变量(如果有的话)放在这些变量之上。我可能还会添加非常量的私有(private)变量。

但是,这意味着我的函数顶部有这些小块常量。我对此有两个问题:

<小时/>

1 - 它们经常被忽略

Robert C. Martin 谈到有时程序员会在“吵闹”的评论中发表评论。这些评论毫无用处,最终会被读者忽略。我觉得这也适用于用于测量和位置的常数 block 。

<小时/>

2 - 大多数函数都没有使用它们

这次引用马丁先生的话:

Classes should have a small number of instance variables. Each of the methods of a class should manipulate one or more of those variables. In general the more variables a method manipulates the more cohesive that method is to its class. A class in which each variable is used by each method is maximally cohesive.

他后来说,当然,要达到“最大凝聚力”是相当困难的,只要类(class)尽可能有凝聚力就没关系。

但是,如果用于测量的常量是由类本身而不是由其函数实例化,那么它们不会破坏这种内聚性吗?

<小时/>

函数作用域

我应该让它们成为像这样的函数变量,而不是用类实例化它们:

public class foo {
private void initGUI() {
final double WIDTH = 100;
final double HEIGHT = 100;
final double PADDING = 10;
...
}
}

然而,这样做违背了我所受的教育(但我的老师过去在某些事情上被证明是错误的)。

<小时/>

有些人告诉我创建一个“Measurements”类,并将所有常量作为公共(public)静态变量放在那里。然而我反对这一点,因为这意味着每次我想添加测量时我都依赖于该类,并且我将拥有一个充满不相关变量的类。

<小时/>

那么,在处理 JavaFX 中用于测量的常量时要遵循的最佳实践(或标准)是什么?

最佳答案

恒定的类结构是最佳实践之一

保持你的命名约定足够可读,这样你就不需要单独的常量类。

始终尝试实现K深刻IS简单S愚蠢和D不要R重复自己

相关话题

What is the best way to implement constants in Java?

关于java - 根据最佳实践,我应该在哪里放置用于 GUI 测量的 JavaFX 常量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46264396/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com