お世話になります。
この度C++でdllの開発を行っており、意見が割れたため、是非いろんな方の意見をお聞きしたく、質問させていただきます。
※インターネット上で検索しても、説得力のある記事をみつけられなかったので…
C++で開発する中で、いろんな場所から呼び出したい共通関数(例えばログ出力処理)を作成しているのですが、これをクラスに属した形で実装するか、クラスに属さない形で実装するか議論になっています。
クラスに属さない派
私はJava出身なので、基本的にOOPばかり行ってきました。
そして、C++もOOPすべき言語だと思っており、クラスに属さない関数という発想ができずにおります…。
(ちなみにC++での開発経験は、1か月ちょっとの初心者です。)
よって、各機能の実装をOOPでクラス単位で実施しているのに、共通関数だけクラスに属していないのは違和感しかなく、実装としてはクラス内でstatic関数で実装するのが正解だと思っています。
クラスに属さない派
昔のC言語の時代からプログラミングしている人は、pLog->Write()
みたいな書き方が面倒なので、externしてWriteLog()
で呼び出したいということを言っています。
気持ちはわかるのですが、足並みそろえてOOPで実装しているのに、このようなことをしてしまうと統一性が取れないような気がしています。
設計としてどちらがベストプラクティスだと思いますか?
いろんな意見が聞けると嬉しく思います、是非理由を添えてよろしくお願いします。
回答6件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/01 13:33