coding创建一个接口创建一个Dog类来实现它创建一个Bird也实现IAnimalAction接口当前UML类图我们发现Bird和Dog两个类都实现了一些不属于它们的方法,这种方式造成了数据冗余因此我们得采用接口隔离原则创建一个接口IFlyAnimalAction创建一个接口IEatAnimalAction创建一个接口ISwimAnimalAction现在我们可以让Dog类实现它需要的接口就行了当前UML类图总结:使用接口隔离原则一定要注意接口中的方法不宜太多,也不宜太少。扩展出来的接口也要注意度。coding创建TeamLeader类创建Boss类main方法调用运行结果我们往回看发现Co
coding:创建一个类bird创建main方法当我们添加“鸵鸟”这个参数进入到方法中的时候,我们发现这样就非常不符合逻辑我们在这里面加一个if判断运行之后,就发现扩展带来的很多问题。再一次修改虽然这种方法解决了当前的问题,但是迎面而来的是多个类都进行判断的话,怕是写不完啊这个时候,我们在类的程度上进行重构创建一个WalkBird类来统一管理走路的鸟对象通过new不同类型的鸟实现,他们不同的方法。这样的形式就是类的单一原则的体现查看UML类图上面是从类的基础上讲解单一原则。接下来从接口的基础上讲解单一原则我们可以发现下面这个接口既要负责获取课程内容方法的内容,又要获取课程管理方面的内容。这样就
设计原则:开闭原则、依赖倒置原则、单一职责原则、接口隔离原则、迪米特法则(最少知道原则)、里氏替换原则、合成/复用原则(组合/复用原则)开闭原则开闭原则coding:创建接口创建实现类主函数调用查看IDEA中UML结构图如果我们要添加一个打折功能的话在实现类中具体实现该方法但是这种方式还是存在很大的弊端,没有实现完美的解耦,这时候,去掉上面的修改,创建一个新的类重写父类方法我们可以看到运行后的结果打了8折获取原价,从这里可以看到,我们完美的实现了解耦。运行结果当前UML结构图总结来说:我们在添加需求的时候,只是添加在应用层添加类来实现,并没有动底层的任何一个类。这样就完美的实现了需求之间的解耦