在拒绝投票之前,让我解释一下我的问题。我在设计体系结构方面有一点经验,并尝试进步。有人,当我修复错误时,得出一个结论,我们需要使我们的private
方法成为public
而不是使用它。那是使我的工作完成并修复错误的最快方法。我去找队长说了。当我从他那里鬼脸之后,我被解释说,每一个public
方法都是一种非常昂贵的享受。有人告诉我,在项目的整个生命周期内都应支持每种public
方法。以及更多..
我在想。确实!为什么当我查看代码时并不太清楚。当我设计自己的体系结构时,情况也不那么明显。我记得我的想法:
啊,我将离开此方法public
,谁知道,也许当系统扩展时它将变得有用。
我很困惑,以为我做了可扩展的系统,但是实际上我的界面上有很多垃圾。
我的问题:
如果方法真的很重要并且值得成为public
,您如何向自己解释?是否有任何反例检查?您如何在不花几个小时在星体上的情况下训练private/public
选择?
参考方案
我建议您阅读YAGNI http://c2.com/cgi/wiki?YouArentGonnaNeedIt
您应该编写适合实际需求的代码,因为编写符合想象的需求的代码会导致膨胀的代码难以维护。
我最喜欢的报价
达到完美,不是没有其他需要补充的东西,而是
当没有什么可以拿走的时候。
-法国作家安托万·圣艾修伯(Antoine de Saint-Exupery)(1900-1944)
我正在使用递归函数遍历根目录下的文件。我只想提取*.txt文件,但不想排除目录。现在,我的代码如下所示:val stream = Files.newDirectoryStream(head, "*.txt") 但是这样做将不会匹配任何目录,并且返回的iterator()是False。我使用的是Mac,所以我不想包含的噪音文件是.DS_ST…
Java:正则表达式模式匹配器是否有大小限制? - java我的模式类似于OR:“word1 | word2 | word3”我大约有800个字。可能有问题吗? 参考方案 您仅受记忆和理智的限制。 :)
java:继承 - java有哪些替代继承的方法? java大神给出的解决方案 有效的Java:偏重于继承而不是继承。 (这实际上也来自“四人帮”)。他提出的理由是,如果扩展类未明确设计为继承,则继承会引起很多不正常的副作用。例如,对super.someMethod()的任何调用都可以引导您通过未知代码的意外路径。取而代之的是,持有对本来应该扩展的类的引用,然后委托给它。这是与Eric…
JAVA 8具有任何匹配属性的对象的过滤器列表 - java我的要求是通过匹配任何属性的字符串来过滤对象列表。例如,假设Contact类具有三个属性:街道,城市,电话。我知道java流过滤器是如何工作的,在这里我必须将输入字符串与每个属性进行比较,如下所示:contactList.stream().filter(contact -> contact.getStreet().equals("dubai&…
Scala-运行时字符串模板 - java我想做的正是java的String模板,但是在scala中。但是,该库不适用于案例类:case class Obj(str:String) val st = new ST("xx $obj.str$ xx",'$','$') st.add("obj",Obj("repl…