設計模式原則 開放 封閉原則

2022-02-06 16:59:13 字數 2122 閱讀 7276

定義:軟體實體應該是可以擴充套件,但是不可修改,對擴充套件開放,對更改封閉

場景:某公司需要招聘3類員工,分別是:主管,程式設計師,銷售。公司根據不同的員工的需求,配置不同的資源。比如程式設計師應該配台電腦。

首先定義乙個 員工型別 列舉

using

system;

using

system.collections.generic;

using

system.linq;

using

system.text;

namespace

設計模式原則.開放封閉

}

定義乙個公司類,公司類裡需要有個分配資源方法 allot(employeetype emp);

using

system;

using

system.collections.generic;

using

system.linq;

using

system.text;

namespace

設計模式原則.開放封閉

return"";}}

}

客戶端實現

using

system;

using

system.collections.generic;

using

system.linq;

using

system.text;

using

設計模式原則.開放封閉;

namespace

設計模式原則

}}

第一版實現中,當公司需要招聘更多不同型別的員工時,就需要對company類的allot方法進行修改,還得對employeetype類進行修改,顯然是不符合 開放-封閉原則的。

首先定義乙個 員工介面  employee ,並宣告乙個員工需求方法need();

using

system;

using

system.collections.generic;

using

system.linq;

using

system.text;

namespace

設計模式原則.開放封閉

}

然後定義不同型別的員工類,並且實現employee介面。

using

system;

using

system.collections.generic;

using

system.linq;

using

system.text;

namespace

設計模式原則.開放封閉

}//銷售類

public

class

selleremployee:employee

}//主管類

public

class

headeremployee:employee

}}

定義乙個公司類,公司類裡需要有個分配資源方法 allot2

using

system;

using

system.collections.generic;

using

system.linq;

using

system.text;

namespace

設計模式原則.開放封閉

}}

客戶端實現

using

system;

using

system.collections.generic;

using

system.linq;

using

system.text;

using

設計模式原則.開放封閉;

namespace

設計模式原則

}}

第二版實現中,當公司需要招聘更多不同型別的員工時,比如美工,就只需要新增乙個美工類並實現employee介面。此版本實現了對修改封閉,對擴充套件開放。

設計模式 開放封閉原則

物件導向設計原則中,最重要的原則就是此原則。開放封閉原則解釋 軟體實體 類,模組,函式等 應該是可以擴充套件的,但是是不可以修改的。開放封閉原則有兩大特徵要牢記 一 對於擴充套件是開放的 二 對於修改是封閉的 為什麼要用到開放封閉原則?我們在做任何系統的時候,都不要指望系統一開始就需求確定,這是不現...

設計模式 開放封閉原則

物件導向設計原則中,最重要的原則就是此原則。開放封閉原則解釋 軟體實體 類,模組,函式等 應該是可以擴充套件的,但是是不可以修改的。開放封閉原則有兩大特徵要牢記 一 對於擴充套件是開放的 二 對於修改是封閉的 為什麼要用到開放封閉原則?我們在做任何系統的時候,都不要指望系統一開始就需求確定,這是不現...

設計模式之開放封閉原則

親愛的博友們,感謝來到darren的部落格 最近一直很忙,今天抽空開了一下開放封閉原則,再這裡和各位分享一下學習心得 開放封閉原則 軟體實體 類,模組,函式 等等,對於擴充套件是開放的,對於修改是封閉的。對於程式設計而言,怎麼的設計才能面對需求的改變卻可以保持相對的穩定,從而可以使得系統可以再第乙個...