我正在学习Java(和OOP),虽然它可能与我现在所处的位置无关,但我想知道是否可以分享一些常见的陷阱或良好的设计实践.
要记住的一件重要事情是静态方法不能被子类覆盖.在代码中引用静态方法实际上将它与该实现联系起来.使用实例方法时,可以根据实例的类型改变行为.你可以利用多态性.静态方法更适合功能性类型的操作,其中行为是一成不变的.比如base 64编码或计算校验和.
我认为任何答案都没有达到何时选择其中一个的OO的核心.当然,在需要处理实例成员时使用实例方法,但是您可以将所有成员公开,然后编写一个静态方法,该方法将类的实例作为参数.你好ç.
您需要考虑您正在设计的对象所响应的消息.那些将永远是你的实例方法.如果你以这种方式思考你的对象,你几乎永远不会有静态方法.静态成员在某些情况下是可以的.
我们想到的值得注意的例外是Factory Method和Singleton(使用节制)模式.当你想要写一个"助手"类时要谨慎,因为从那里开始,这是程序编程的一个滑坡.