设计原则之接口隔离原则
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计原则之接口隔离原则相关的知识,希望对你有一定的参考价值。
segregate v.隔离 se 蛇 gre green格林 gate门 蛇被格林用门隔离了。 设计原则之接口隔离原则 动机: 客户不应该被强制实现他们不用的方法。应该用多个小的接口代替庞大功能全的接口。 结论: 该原则在代码设计的时候就要考虑。可以使用适配器模式将胖接口隔离。 Bad Example: 缺点: 1、如果新增一个robot机器人工人,那么eat方法就是多余的了。 // interface segregation principle - bad example interface IWorker { public void work(); public void eat(); } class Worker implements IWorker{ public void work() { // ....working } public void eat() { // ...... eating in launch break } } class SuperWorker implements IWorker{ public void work() { //.... working much more } public void eat() { //.... eating in launch break } } class Manager { IWorker worker; public void setWorker(IWorker w) { worker=w; } public void manage() { worker.work(); } } Good Example 好处: 1、接口功能最小化,需要哪个加哪个。 // interface segregation principle - good example interface IWorker extends Feedable, Workable { } interface IWorkable { public void work(); } interface IFeedable{ public void eat(); } class Worker implements IWorkable, IFeedable{ public void work() { // ....working } public void eat() { //.... eating in launch break } } class Robot implements IWorkable{ public void work() { // ....working } } class SuperWorker implements IWorkable, IFeedable{ public void work() { //.... working much more } public void eat() { //.... eating in launch break } } class Manager { Workable worker; public void setWorker(Workable w) { worker=w; } public void manage() { worker.work(); } }
本文出自 “不死的小强” 博客,请务必保留此出处http://qianray.blog.51cto.com/4607992/1878307
以上是关于设计原则之接口隔离原则的主要内容,如果未能解决你的问题,请参考以下文章