我们为什么要避开公共方法?封装的好处

Zuz*_*zEL 0 c# java oop scala objective-c

在进行投票之前让我解释一下我的问题.我在设计架构方面有一点经验并尝试进步.当我修复一个bug时,我得出一个结论,我们需要让我们的private方法成为现实public而不是使用它.这是完成工作的最快方法,并修复了错误.我去了我的团队领导并且说了.在我得到他的鬼脸之后,我被解释说每种public方法都是非常昂贵的乐趣.有人告诉我,在项目的整个生命周期中 public 应该支持每种方法.以及更多..

我在想.确实!当我查看代码时为什么不那么清楚.当我设计自己的架构时,情况并非如此明显.我记得我对它的看法:

啊,我会留下这种方法public,谁知道,也许它会在系统发展时变得有用.

我很困惑,并认为我制作了可扩展的系统,但实际上我的接口中有大量的垃圾.

我的问题:

你怎么能向自己解释一种方法是否真的重要且值得一试public?是否有任何反例可供检查?如何在private/public没有花费数小时在星界的情况下接受训练以进行选择?

Pet*_*rey 5

我建议你阅读YAGNI http://c2.com/cgi/wiki?YouArentGonnaNeedIt

您应该编写代码以满足实际需求,因为编写代码以满足想象的需求会导致代码变得更加难以维护.

我最喜欢的报价

实现完美,而不是在没有其他任何东西可以添加的时候,但是当没有什么可以带走时.

- Antoine de Saint-Exupery法国作家(1900年至1944年)