
多態性(ポリモーフィズム)は「差異と反復」?ドゥルーズ哲学から学ぶ、変化に強いシステム思考
ポリモーフィズム (多態性) と ドゥルーズの「差異と反復」― ポリモーフィズムで感じるドゥルーズ: “同じ”コードに潜む違い ―
どうも、ビジネス哲学芸人のとよだです。
今回の“ビジネスと哲学とITの交差点”では、「ポリモーフィズム (多態性) と ドゥルーズの『差異と反復』」という、またまたちょっとマニアックだけど熱いテーマをお届けします。
前回は「継承 (Inheritance) と遺伝・文化的継承」について語りましたが、今回は「同じメソッド呼び出しでも、オブジェクトやコンテクストによって振る舞いが変わる」というポリモーフィズムと、「繰り返しの中にも生まれる差異」を重視するドゥルーズの哲学を絡めてみようと思います。いやぁ、こういう話、大好物なんですよね(笑)。ではさっそく見ていきましょう。
1. OOPにおける“ポリモーフィズム (多態性)”のイメージ
プログラミングの世界では、オブジェクト指向 (OOP) の重要な概念のひとつに「ポリモーフィズム (多態性)」があります。
これは、端的に言えば「同じメソッド呼び出し speak() でも、受け取るオブジェクトの種類によって違う動きをする」という性質ですね。たとえば、
Dog クラスが speak() すると「ワン!」と吠える
Cat クラスが speak() すると「ニャー」と鳴く
RobotDog クラスが speak() すると「超音波ビーム!」(笑)
といった具合に、“名前は同じ”なのに実態が違うんです。これって一見すると不思議な感じがしますが、実はソフトウェアに柔軟性を与えるためにかなり大事な仕組みですよね。
共通のインターフェース(たとえば Animal インターフェースの speak())を使いつつ、実装は各クラスごとに自由に変えていい。この「自由さ」こそが多態性の肝。ビジネスで言うと「同じ問い合わせフォームを使っているのに、裏で処理する担当部署(セールスかサポートか)が違えば対応が変わる」みたいな話かもしれません。
2. ドゥルーズの「差異と反復」とは?
さて、一方で哲学のドメインでは、ジル・ドゥルーズという20世紀フランスの哲学者が「差異と反復」という概念を提示しました。これ、超ざっくり言うと「物事は同じことを繰り返しているようでいて、実はそこには常に差異が内包されている」という考え方です。
「同じ行動を繰り返していると見えるが、一度としてまったく同じものは存在しない」というわけですね。毎朝同じ時間に起きて同じコーヒーを飲んでいるように思えても、温度や豆の挽き方、感情の変化などが微妙に異なり、決して完全に“同じ”日はない。ビジネスのルーティンワークも、昨日と同じようでいて違うトラブルが起こる、みたいな。
ドゥルーズが言いたかったのは「表面的に“同じ”に見えても、絶えず起こる細かな違いこそに価値がある」ということ。大事なのは、その「差異をどう捉えるか」って話なんですよね。
3. “同じ”呼び出しに潜む違い:ポリモーフィズムとドゥルーズの交差
ここで「ポリモーフィズム × 差異と反復」の関係を見てみると、面白い発見があります。OOPのポリモーフィズムって、表面的には“同じ名前”のメソッドを呼び出している。でも、実際に行われる処理はオブジェクトごとに違う。これって「同じメソッド名を繰り返し呼んでいるのに、必ず差異が生まれる」構造じゃないですか。
同じ speak() → 実際にはバリエーション豊かなアウトプット
同じように見える繰り返し → そこに埋め込まれる “差異”
ドゥルーズ流に言えば「繰り返しのプロセスに差異が内包されるからこそ、新たな可能性が生じる」。プログラミング的には「共通インターフェースを備えていながら、各具象クラスが違う振る舞いを担うからこそシステムが拡張可能になる」と言えますよね。
4. 具体例:Factoryパターンやプラグイン構造の利点
多態性をうまく活かす事例として、Factoryパターンやプラグイン構造がよく挙げられます。
Factoryパターン
たとえば AnimalFactory というクラスがあって、createAnimal() メソッドを呼ぶと、Dog を返すのか Cat を返すのかは状況次第。呼び出す側からすると「ただ動物をくれ」と言っているだけだけど、返されるオブジェクトによって speak() の挙動が変わる。ここに“同じ呼び出しでも実態は異なる”という差異が詰まっているわけです。プラグイン構造
“同じAPI仕様” で書かれたプラグインを追加するだけで、ソフトウェアに新機能をポンと入れられる。実装内容はプラグインごとに違う。これも、同じインターフェースを共有しながら、差異を許容する仕組みですよね。
こうした設計思想は「共通する枠組みを用意しつつ、細部の実装は差異を肯定する」というドゥルーズ的なエッセンスがあるように思えてなりません。
5. ビジネス視点:共通基盤と差別化の両立
哲学的には「差異を生み出すことこそ創造性や多様性の源泉」と言われますが、ビジネス的にも「標準化と差異化」の両立がめちゃくちゃ重要ですよね。
製品ラインナップの共通基盤+差別化
例えば自動車メーカーなんかでも、同じプラットフォームを使い回しつつ、ブランドや車種ごとに外装や機能を変えて差別化しています。これはまさに“多態性”を活かしているわけですよね。基礎となるフレームは一緒、でも最終的に「SUVかセダンか」「ガソリンかEVか」で振る舞いが変わる。フレームワーク化で効率アップ
開発の世界でも、フレームワークを統一しておけば、共通のコストを削減できる。だけどアプリの最終的な見た目や動きは、要件ごとにアレンジしやすい。まさに“同じ呼び出しだけど裏の実装が違う”という柔軟性で、プロダクトを素早く回していけるわけです。標準化とイノベーションの両立
「標準化しすぎて個性がなくなる」って話もありますが、要は“どこを標準化するか”と“どこに差異を残すか”のさじ加減が大事。そこに組織としてのクリエイティビティが出る、というのは、なんだかドゥルーズの考え方にも通じますよね。表面的には同じような仕組みを回しているようでいて、中身は絶えず変化・更新されている、みたいな。
6. まとめ:差異を受け入れる勇気
今回のポイントをざっくりまとめると、
ポリモーフィズム (多態性)
同じメソッド呼び出しでも、オブジェクトごとに振る舞いを変えられる
システムの柔軟性と拡張性を高めるための要所
ドゥルーズの「差異と反復」
繰り返しの中にも常に差異がある
“同じ”に見えるものに潜む違いこそ創造性や新しさを生む
ビジネス×哲学×ITの交差点
「共通インターフェースを持ちつつ、各部分で差異を生み出す」という仕組みは、組織や製品づくりにも応用可能
標準化で効率を上げながら、差異(独自性)をしっかり守ることで競争力を保つ
ポリモーフィズムの話って、一見すると「犬が吠えるか猫が鳴くか」程度の違いでしかない気がしますが、哲学的な視点を重ねると「同じ呼び出しにもいろんな世界があるんだなぁ」と感じますよね。まさに「差異と反復」を体感するにはもってこいの概念じゃないでしょうか。
皆さんの組織やプロジェクトにも、表向きには同じKPIや同じプロセスを踏んでいるけれど、部門ごとに微妙に違うルールや文化が潜んでいるかもしれません。そこには思わぬヒントやイノベーションの種があるんですよね。
その差異を“誤差”として潰してしまうか、それとも“創造の源”として活かすか。それは私たちの選択次第。ドゥルーズの「差異と反復」は、そうした選択の重要性を静かに囁いているように思います。
それでは、そろそろ今回はこの辺で。みなさん、日々の開発やビジネスの現場でちょっと“同じコードに潜む違い”に目を向けてみると、面白い発見があるかもしれません。次回もまたお楽しみに! ではまた、次回の“ビジネスと哲学とITの交差点”でお会いしましょう。
参考文献・関連書籍
白米FMとは?
日米のIT業界で働く小学校からの友人2人が、最新トレンドから古の哲学思想まで気ままに語り合う人文知系雑談ラジオ。
コテンラジオ、超相対性理論、a scope等に影響を受け、一緒に考えたくなるような「問い」と、台本のない即興性の中で着地点の読めない展開が推しポイントです。
移り変わりの速い時代だからこそ、あえて立ち止まり疑ってみたい人。
他者の視点や経験を通して、物事に新しい意味づけや解釈を与えてみたい人。
自分の認知や行動を書き換えて、より良く生きる方法を一緒に探求しましょう。
※ポッドキャストの文字起こし版へのリンクはこちら(LISTEN)