首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 可擴展性設計:多態讓 tune() 不動如山

     編輯:Java 相關知識

擴展性定義

無需修改既有代碼即可添加新功能。多態是關鍵:框架代碼只依賴基類接口,新類型繼承基類自動融入體系。

Music3 擴展演示

class Instrument3 { void play() {} String what() {} void adjust() {} }
class Wind3 extends Instrument3 { ... }
class Brass3 extends Wind3 { void adjust() { println("Brass3.adjust()"); } }
class Woodwind3 extends Wind3 { ... }

static void tune(Instrument3 i) { i.play(); } // 永不修改
static void tuneAll(Instrument3[] e) { for (Instrument3 ins : e) tune(ins); }

Instrument3[] orchestra = { new Wind3(), new Percussion3(), new Stringed3(), new Brass3(), new Woodwind3() };
tuneAll(orchestra);

新增類型零侵入

  • 新增 Electronic3 繼承 Instrument3 實現 play()。
  • tune()/tuneAll() 完全不知情,依然正常工作。
  • 即使 tune() 在獨立文件/已編譯 Jar 中,也無需重新編譯。

核心哲學

「將發生改變的東西(具體樂器類型)與不變的東西(調音邏輯)分離。」
多態讓這種分離在語言級落地,是 OOP 管理複雜度的核心杠桿。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved