设计模式六大原则:接口隔离原则(六)
2016-05-15 21:31
267 查看
转载请标注:/article/7548888.html
面向对象其它六大原则
单一职责原则-带你走梦幻西游(一)
依赖倒置原则(二)
开闭原则(三)
迪米特原则-带你走进梦幻西游(四)
里氏替换原则(五)
定义
客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。 通俗来讲不要强迫客户使用它们不用的方法,如果强迫用户使用它们不使用的方法,那么这些客户就会面临由于这些不使用的方法的改变所带来的改变。
案例:
早上项目经理给毛驴安排一个任务,需要做一个支付系统,有微信支付,支付宝支付,苹果支付等待。于是毛驴马上就进行设计,设计图如下:
毛驴觉得没什么问题后给经理看,经理看完后很生气的对毛驴说:“毛驴,你的设计依赖性太重了。你让用户使用每种支付的同时也要实现另外2中支付方式,那么只要其中一种支付发生变化都有可能会影响到别的支付,重新设计!!!于是毛驴重新设计了一番,最后经理非常满意。那么毛驴是如何解决这个问题呢?参考下图的设计,为每个类都单独设计专门的操作接口,使得它们只依赖于它们关系的方法,这样就不会互影响了!
面向对象其它六大原则
单一职责原则-带你走梦幻西游(一)
依赖倒置原则(二)
开闭原则(三)
迪米特原则-带你走进梦幻西游(四)
里氏替换原则(五)
定义
客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。 通俗来讲不要强迫客户使用它们不用的方法,如果强迫用户使用它们不使用的方法,那么这些客户就会面临由于这些不使用的方法的改变所带来的改变。
案例:
早上项目经理给毛驴安排一个任务,需要做一个支付系统,有微信支付,支付宝支付,苹果支付等待。于是毛驴马上就进行设计,设计图如下:
毛驴觉得没什么问题后给经理看,经理看完后很生气的对毛驴说:“毛驴,你的设计依赖性太重了。你让用户使用每种支付的同时也要实现另外2中支付方式,那么只要其中一种支付发生变化都有可能会影响到别的支付,重新设计!!!于是毛驴重新设计了一番,最后经理非常满意。那么毛驴是如何解决这个问题呢?参考下图的设计,为每个类都单独设计专门的操作接口,使得它们只依赖于它们关系的方法,这样就不会互影响了!
相关文章推荐
- Qt窗口之QMainWindow、QDialog、QWidget
- 4.机器学习实战之朴素贝叶斯
- 大话设计模式java版--抽象工厂模式
- ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务 的解决方法 listener.ora修改
- php读取数据库信息的几种方法
- 使用pullToRefresh实现下拉刷新上拉加载
- php以图搜图
- 如何下载Instagram照片/视频到手机
- 【软考总结】——十六进制与二进制的转换
- 2016"百度之星" - 资格赛 Problem C
- 2016SDAU编程练习三1001
- ORA-12514 startup mount时遇到ORA-12514
- 团队作业五
- 通过CIFilter生成二维码
- git,切换以前的版本,增加代码,然后合并的操作步骤
- 20159217《网络攻防实践》第十一周学习总结
- 第四次作业
- Android Lint官方静态代码检查工具
- ora-01950:对表空间XXX无权限
- Gym 100712E Epic Professor