如何解决如何实现开闭原则?
我有2个课程:
public class Dog{
public void talk(){
System.out.println("dog is talking");
}
public void eat(){
System.out.println("dog is eating");
}
}
public class Cat{
public void talk(){
System.out.println("cat is talking");
}
public void eat(){
System.out.println("cat is eating");
}
}
这本书说此代码违反了“开闭”原则,但没有给出我的理由,给出的答案是我需要创建一个接口来实现该原则(也没有对此的解释)答案)。
我找到了这篇文章:http://joelabrahamsson.com/a-simple-example-of-the-openclosed-principle/,但是在这段代码中,如果我想添加另一个类“ bird”,则不会影响原始代码。因此,我认为这段代码没有违反“开闭”原则。
解决方法
您可以阅读another article,然后了解开放封闭原则
,开放式封闭原则建议我们不要在现有类中进行更改,否则请使该类可扩展。
请注意,我们仍然可以进行更改,但更改应尽可能少。
在上面提供的代码中,我没有看到违反开放式封闭原则的情况,因为每个类都有自己的功能,例如get_server(vm)
和talk()
。>
但是,如果您继续使用该代码而没有任何抽象(例如接口或抽象类),则您很有可能违反 Liskov替换原则和依赖倒置原则
您可以阅读有关S.O.L.I.D.的文章。原则here。它包含简化的说明以及违反和正确的示例。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。