OCPなコードにする方法

今日、とあるページでOpen-Closedなコードを作成するには、継承と委譲を使うと書いてあった。今まで抽象クラスやダックタイピングを利用したポリモルフィズムしか頭になかったが、デリゲート(タイプセーフな関数ポインタ?)を利用しても実現できることに気がついた。要は、クライアント側で抽象化されたメソッドを呼び出せば良いということである。基本的には、この2パターンで良いのかは今後の調査課題。