首頁 >後端開發 >C++ >為什麼在實作類別中使用帶有公共方法的 PIMPL 習慣用法?

為什麼在實作類別中使用帶有公共方法的 PIMPL 習慣用法?

Barbara Streisand
Barbara Streisand原創
2024-12-18 13:09:32281瀏覽

Why Use the PIMPL Idiom with Public Methods in the Implementation Class?

為什麼要用 PIMPL 慣用法?

實作指標 (PIMPL) 慣用法會向函式庫使用者屏蔽實作細節和資料。使用此習慣用法時,通常的做法是在 PIMPL 類別而不是公共類別中定義公共方法。這就提出了一個問題:為什麼不直接實作公共類別中的方法?

考慮以下 PIMPL 實作:

#include "cat.h"

#include "cat_impl.h"

Cat::Cat() {
    cat_ = new CatImpl;
}

Cat::~Cat() {
    delete cat_;
}

Cat::Purr(){ cat_->Purr(); }

在此範例中,公用類別 Cat 充當「外觀」 " 對於 PIMPL 類別 CatImpl,它保存 Purr() 方法的實際實作。PIMPL習慣用法有幾個優點:

  • 將介面與實作解耦:透過將介面(公用類別)與實作(PIMPL 類別)分離,不需要對實作進行更改重新編譯使用此介面的客戶端程式碼。慣用法隱藏實作細節,保護它們免受未經授權的存取和修改。誤用。 >
  • 支援程式碼重複使用:可以使用PIMPL類別跨多個函式庫版本,方便程式碼重複使用與維護。的公共方法一起使用可以提供解耦、隱藏、封裝和程式碼重用的好處,使其成為開發靈活且可維護的軟體庫的寶貴習慣。

以上是為什麼在實作類別中使用帶有公共方法的 PIMPL 習慣用法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn