OOP/開放閉鎖原則
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[オブジェクト指向プログラミング]] > 開放閉鎖原則
*開放閉鎖原則(OCP) [#ca383267]
''OCP: The Open Closed Principle''~
'''拡張に対して開いていて修正に対して閉じていなければなら...
いきなり↑みたいな事を言われても(゚Д゚)ハァ?、って感じでしょ...
機能を追加する事は可能だが書き直しちゃ駄目だお、と言う事...
・・・これは例が無いと埒が明かない気がします。~
class vip{
public:
void update();
private:
std::list<Vipper*> m_vipperList;
};
vipにはvipperがいます。まぁ、ある意味では正しいクラスです...
でもvipper以外にもユーザがいるだろうしupdate以外にもした...
その度に書き直してたりしたらとても非効率。それじゃ、どう...
答えは''予測しろ''です。今回は例がアレでしたが一つの「概...
それを見極める「眼」とは経験やセンスと言ったものであり容...
ですがOOPを使いこなせばリスクを軽減する事が可能です。
その一つの答えが''抽象''です。
例えばメンバ変数をstd::list<Neler*> m_nelerList;にでもす...
又、acceptメソッドを設けてvisitorを受け入れれば様々な処理...
クラスそのものを弄らせず、しかし予想されうる拡張を視野に...
と言うのがOCPに於ける約束事だと思います。
無駄にメンバを増やさない程度に心掛けましょう。
終了行:
[[オブジェクト指向プログラミング]] > 開放閉鎖原則
*開放閉鎖原則(OCP) [#ca383267]
''OCP: The Open Closed Principle''~
'''拡張に対して開いていて修正に対して閉じていなければなら...
いきなり↑みたいな事を言われても(゚Д゚)ハァ?、って感じでしょ...
機能を追加する事は可能だが書き直しちゃ駄目だお、と言う事...
・・・これは例が無いと埒が明かない気がします。~
class vip{
public:
void update();
private:
std::list<Vipper*> m_vipperList;
};
vipにはvipperがいます。まぁ、ある意味では正しいクラスです...
でもvipper以外にもユーザがいるだろうしupdate以外にもした...
その度に書き直してたりしたらとても非効率。それじゃ、どう...
答えは''予測しろ''です。今回は例がアレでしたが一つの「概...
それを見極める「眼」とは経験やセンスと言ったものであり容...
ですがOOPを使いこなせばリスクを軽減する事が可能です。
その一つの答えが''抽象''です。
例えばメンバ変数をstd::list<Neler*> m_nelerList;にでもす...
又、acceptメソッドを設けてvisitorを受け入れれば様々な処理...
クラスそのものを弄らせず、しかし予想されうる拡張を視野に...
と言うのがOCPに於ける約束事だと思います。
無駄にメンバを増やさない程度に心掛けましょう。
ページ名: