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(); } }
設計原則之接口隔離原則
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.