Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 隐藏底层类真的很理想吗?_Java - Fatal编程技术网

Java 隐藏底层类真的很理想吗?

Java 隐藏底层类真的很理想吗?,java,Java,所以我在这一点上已经编写了很长时间了。我总是编写带有许多私有底层字段的包装器类,这些字段可以通过helper方法访问。这是传统智慧,或者至少是我所学到的 有时,用户不应该在运行时轻松地与代码交互,但……我的“假设”是:只有您使用的桌面实用程序应用程序应该公开底层类,以便于扩展。单人游戏和类似游戏也是如此 当你谈论处理泛型时,这是有道理的。如果您有一个通过接口/抽象实现的契约,那么它是有意义的。此外,这显然不适用于需要安全的程序 对我来说,公开底层类可能意味着代码大大减少,代码更容易“接触和接触(

所以我在这一点上已经编写了很长时间了。我总是编写带有许多私有底层字段的包装器类,这些字段可以通过helper方法访问。这是传统智慧,或者至少是我所学到的

有时,用户不应该在运行时轻松地与代码交互,但……我的“假设”是:只有您使用的桌面实用程序应用程序应该公开底层类,以便于扩展。单人游戏和类似游戏也是如此

当你谈论处理泛型时,这是有道理的。如果您有一个通过接口/抽象实现的契约,那么它是有意义的。此外,这显然不适用于需要安全的程序

对我来说,公开底层类可能意味着代码大大减少,代码更容易“接触和接触(通过反射、类加载器等)”,并大大提高了实现的一致性

包装类可以是任何东西,尽管它们隐藏了一些类,但这些类本身是相同的。两段代码具有相同的底层架构和类,它们做相同的事情,不应该有完全不同的代码,对吗

这就是标准的全部意义,不是吗?我的整个问题只是…为什么?为什么隐藏底层类,并用一组方法包装它们来完成简单的事情,这本身就是一种“良好实践”

我最近遇到了很多具有“Manager”类的lib(带有构造函数中的实例字段的util类……可能不是一个正式术语)。很多lib使得简单地检查值进行调试有些困难。一个例子是一个HashMap,它只能使用lib的方法来访问,而lib的方法会在out/in时弄乱值

所以说invoke.get在hashmap上,或者遍历entryset进行调试,我必须使用反射。这是一种痛苦,我的代码中充满了大量的try/catch,并且花费了更多的时间


实际上,我必须创建一个代理和访问者,以便在util方法结束时将某些值写入数据集之前获取它们!所以,是的..有什么用?

为调试目的编写代码很奇怪,你不能用调试器检查东西吗?我不明白anything@RC我还没有看到很多调试器允许我从键值对或实例字段中的其他数据集中提取实际值,比如HashMap,List