设计模式7大原则
2020-07-29 09:47:01 0 举报
AI智能生成
设计模式7大原则思维导图
作者其他创作
大纲/内容
迪米特法则
又称最少知道原则
只和朋友类交流,不和陌生类交流
陌生类是指方法内的临时变量,入参和返回值不算
朋友类是指成员变量,入参,返回值
例子:Boss类操作List<Course>,Leader类统计List<Course>,改造成:Leader类统计与操作,Boss类只调用Leader类方法
里氏替换原则
子类可以实现父类的抽象方法,但不能覆盖非抽象方法
如果父类能执行的方法,子类也依然能执行且效果相同。
重载时入参更宽松,返回值更严格
例子:开闭原则的例子,不再重写getPrice,另写方法getDiscountPrice(){super.getPrice()*0.6}
例子:正方形继承长方形,如果增加长方形的宽,正常。如果增加正方形的宽,则会无限循环。因此不应该继承
合成复用原则
尽量使用对象组合/聚合(就是定义成员变量或者List),而不是继承
例子:Dao有Connect成员变量,Connect有Mysql,Oracle等多种子类。不需要修改Dao即可改变数据库类型
开闭原则
拓展开放,修改关闭
使用接口或抽象类限制,且抽象方法稳定
核心思想:面向抽象编程
例子:不修改JavaCourse,新建类去重写getPrice()实现打折(super.getPrice()*0.6)
依赖倒置原则
高层类不依赖底层类,底层细节应该依赖抽象
例子:tom.study(new JavaCourse());
单一职责原则
一个Class/Interface/Method只负责一项职责
例子:Course.study(直播课/录播) 拆分为LiveCourse.study()和ReplayCourse.study()
例子:modifyUsernameAvatar拆分成modifyUsername和modifyAvatar
接口隔离原则
尽量细节化接口,不依赖不需要的接口
例子:interface Brid有fly()、 eat()方法,拆分为Fly和Eat接口
0 条评论
下一页