「良い設計」は「良いアプリケーション」をつくるための重要な要素であり,オブジェクト指向はそれを実現するための道具の1つです。
継承,カプセル化,多態性の三大要素を活用して,保守性や再利用性などを高めることに注力します。
しかし,我々が普段扱うOSやミドルウェアの多くは実装にC言語を使用しています。
C言語はオブジェクト指向を実現することを想定した仕組みを持っていません。
それでも,低レイヤのコードにもオブジェクト指向の考え方に基づいた設計と実装が確かに存在します。
これは,「ある機能を実現するための設計が結果としてオブジェクト指向になったもの」と捉えることができます。
このような設計や実装に注目することで,「手段」としてオブジェクト指向を用いる際の本質が見えてくるのではないでしょうか。
本セッションでは,一般に使われているOSSのコードを例に,C言語を用いたオブジェクト指向設計の実装を紹介し,設計の意図やユースケースに合わせた妥協点を探ります。
普段とは少し異なる視点からオブジェクト指向を眺める機会をつくり,低レイヤ領域に興味を持つきっかけになれば幸いです。
※C言語や周辺知識の複雑な部分は都度解説するため,コアな知識は不要です。
【このセッションでお話すること】
・設計と実装,手段と目的の再確認
・C言語でオブジェクト指向を実現する基本戦略
・一般的なOSSの設計と実装の紹介
・まとめ 他の言語に生かすために