Java类组织
阅读本文,作者建议考虑一下包org,只留下真正需要向世界其他地方公开的类 我想我明白了一点,那就是比特公开不需要的东西允许以后在不破坏客户端代码的情况下更改东西-但是,我想不出一个例子- 如果一个包有两个实体或类,每个实体或类提供一组功能,那么面向公众的类是否必须协调与外部世界的所有通信Java类组织,java,access-modifiers,Java,Access Modifiers,阅读本文,作者建议考虑一下包org,只留下真正需要向世界其他地方公开的类 我想我明白了一点,那就是比特公开不需要的东西允许以后在不破坏客户端代码的情况下更改东西-但是,我想不出一个例子- 如果一个包有两个实体或类,每个实体或类提供一组功能,那么面向公众的类是否必须协调与外部世界的所有通信 任何示例或指导都将不胜感激 基本上,除非您需要,否则不要对客户机代码做出承诺。当您公开一个方法时,在某些上下文中,至少您承诺在不与客户机代码协调的情况下不更改它 假设您公开了一个方法,并且有人使用它。后来你意识
任何示例或指导都将不胜感激 基本上,除非您需要,否则不要对客户机代码做出承诺。当您公开一个方法时,在某些上下文中,至少您承诺在不与客户机代码协调的情况下不更改它 假设您公开了一个方法,并且有人使用它。后来你意识到你需要改变方法。现在您有两个选择:
public double computeTax(double price) { ... }
即使所有图书馆的税收计算都发生在图书馆内部。我只是把这个方法公之于众,因为我认为不与全世界分享我的税务计算器将是一种耻辱
很多人都认为这种方法很好,并使用它构建应用程序
然后有人指出,用双精度表示美元金额是完全错误的(浮点表示法只是近似值,对金钱没有好处)。我决定彻底摆脱旧方法(不希望任何人使用根本错误的东西),并用
public Currency computeTax(Currency price) { ... }
但是现在我要打破一堆使用原始方法的客户端代码
如果我把我那蹩脚的税务计算器留给自己,那就更好了,因为它毕竟不是图书馆真正提供的东西的一部分。现在我陷入了进退两难的境地。基本上就是不承诺客户机代码,除非你需要。当您公开一个方法时,在某些上下文中,至少您承诺在不与客户机代码协调的情况下不更改它 假设您公开了一个方法,并且有人使用它。后来你意识到你需要改变方法。现在您有两个选择:
public double computeTax(double price) { ... }
即使所有图书馆的税收计算都发生在图书馆内部。我只是把这个方法公之于众,因为我认为不与全世界分享我的税务计算器将是一种耻辱
很多人都认为这种方法很好,并使用它构建应用程序
然后有人指出,用双精度表示美元金额是完全错误的(浮点表示法只是近似值,对金钱没有好处)。我决定彻底摆脱旧方法(不希望任何人使用根本错误的东西),并用
public Currency computeTax(Currency price) { ... }
但是现在我要打破一堆使用原始方法的客户端代码
如果我把我那蹩脚的税务计算器留给自己,那就更好了,因为它毕竟不是图书馆真正提供的东西的一部分。现在我陷入了进退两难的境地。基本上就是不承诺客户机代码,除非你需要。当您公开一个方法时,在某些上下文中,至少您承诺在不与客户机代码协调的情况下不更改它 假设您公开了一个方法,并且有人使用它。后来你意识到你需要改变方法。现在您有两个选择:
public double computeTax(double price) { ... }
即使所有的