OOP 中的 方法調用、接口、鴨式辯型、訪問者模式

方法調用的四種方式

  1. 直接調用:經過類或者實例直接調用其方法。
  2. 接口調用或者轉型調用:經過將實例回調給一個接口對象,或者轉型爲一個父類的實例,來調用
  3. 間接調用:將對象當參數傳給一個方法,在這個方法中調用對象的方法
  4. 間接接口調用:就是第二和第三種的結合,方法以一個接口或者一個父類爲形參,傳入對象的時候自動的回調或轉型
接口的兩種類型
  1. 強制性接口,這類接口是在類聲明的時候須要顯式聲明的。即接口方法的實現必須放在類體裏面。
  2. 非強制型接口,即鴨子辯型。對於支持動態綁定(在類體外部爲類或實例添加方法)的語言,顯然在類定義時聲明接口是不夠用的。因此基本都經過反射功能來支持非強制型接口。而強制接口是定義了一個回調函數,來實現對象轉變爲接口對象的。

在不破壞既有封裝性的基礎上,爲系統新增功能

即不修改原先的類定義。函數

  1. 對於支持動態綁定的語言,能夠直接動態添加一個方法。在某種程度上仍是破壞了原有的封裝性。
  2. 採用間接調用的方法,定義一個新的類,在類中間接調用原有的類或對象的方法,定義出新的功能。
    • 若是語言支持重載,能夠用重載實現對不一樣類型的對象的統一對外接口。
    • 對於不支持重載的語言,能夠經過接口來提供統一對外接口。
    • 對於不支持強制接口的語言,能夠經過鴨式辯型來對外提供統一接口。

由於間接調用來爲系統新增新功能,能夠對外封裝訪問多個不一樣類的統一接口,咱們稱這種方式爲訪問者模式對象

相關文章
相關標籤/搜索