実装へのポインター (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 中国語 Web サイトの他の関連記事を参照してください。