Oop 开闭原理

Oop 开闭原理,oop,inheritance,Oop,Inheritance,假设我有一个银行应用程序,它有一个名为Account的基类和许多子类,例如Savings、Current。我设计了我的应用程序,这样如果我有一个新帐户,比如支票,我就可以通过不干扰其他类轻松添加它。这似乎遵循了开闭原则 但是,如果我的客户决定需要更改储蓄账户的详细信息,会发生什么情况?我不是在扩大储蓄,我想改变它的“calculateInterest”方法。我必须修改储蓄的事实是否意味着我违反了开闭原则?这可能更适合程序员堆栈交换。//当我们在这里的时候,你用什么方式改变计算利息的方法?你是在增

假设我有一个银行应用程序,它有一个名为Account的基类和许多子类,例如Savings、Current。我设计了我的应用程序,这样如果我有一个新帐户,比如支票,我就可以通过不干扰其他类轻松添加它。这似乎遵循了开闭原则


但是,如果我的客户决定需要更改储蓄账户的详细信息,会发生什么情况?我不是在扩大储蓄,我想改变它的“calculateInterest”方法。我必须修改储蓄的事实是否意味着我违反了开闭原则?

这可能更适合程序员堆栈交换。//当我们在这里的时候,你用什么方式改变计算利息的方法?你是在增加还是完全改变它?也许可以在一些代码中展示方法是如何变化的。对不起,伙计,这只是理解原理的一个假设场景。我的意思是改变计算利息的方法。我是否手动将其移动到程序员堆栈交换?开放-关闭原则并不意味着你不能发展你的应用程序。如果业务逻辑发生变化,那么您必须再次测试所有内容。除非你想保留新的和旧的,否则我不知道如何移动它。我可能只是删除它,然后把它转发到那里在这种情况下,我想说,如果您不想违反这个原则,您需要仔细地实现代码。在您的情况下,似乎您最初是通过执行interest=m_balance*0.0125来计算利息的,您最初可以执行双倍利率{get;set;};利息=货币单位余额*利率。所以我认为你可能违反它的唯一方式,是如果你不非常小心地实施。