我知道了平普爾 - 成語,在C將是這個樣子:鑄字結構隱藏實現VS平普爾 - 成語
// foobar.h
struct FooBar {
char *someString;
struct FooBarImpl *pImpl;
};
// foobar.c
struct FooBarImpl {
char *hiddenString;
};
類型轉換
但是我可以擺脫不透明的指針,降低了賠率有人食堂與實施:
// foobar.h
struct FooBar {
char *someString
};
// foobar.c
struct FooBarImpl {
// FooBar members
char *someString
// FooBarImpl members
char *hiddenString
};
在後一種情況下,任何功能上做FooBar的操作只會強制轉換爲FooBarImpl獲得訪問「私人」的成員。
我可以看到這將成爲一個問題,例如,如果某人將某個成員添加到FooBar但不對FooBarImpl執行相同操作。但在我的情況下,FooBar將只包含一個成員,並且不會發生變化。
這是否被認爲是好的做法,或者我應該堅持使用pimpl-idiom當我想隱藏實現細節?
謝謝。