[解決済み] Rとオブジェクト指向プログラミング
2023-07-26 19:47:40
質問
オブジェクト指向はRでも可能です。しかし、Pythonなどと異なり、オブジェクト指向を実現する方法はたくさんあります。
- は R.oo パッケージ
- S3、S4クラス
- 参照クラス
- は プロトパッケージ
私の質問です。
どのような メジャー RのOOプログラミングのこれらの方法は、どのような違いがあるのでしょうか?
ここにある回答は、RプログラマがどのOOプログラミング手法が自分のニーズに最も合っているかを判断するための参考となるのが理想的です。
そのため、私は、客観的な方法で、経験に基づき、事実と参照に裏打ちされた詳細を求めています。 明確化するためのボーナスポイント どのように これらのメソッドが標準的な OO プラクティスにどのようにマッピングされるかを明確にすると、ボーナスポイントが加算されます。
どのように解決するのか?
S3クラス
- オブジェクトというより命名規則
-
.構文に基づく。 例:print の場合。
print
を呼び出すprint.lm
print.anova
などです。 また、見つからない場合はprint.default
S4クラス
- 複数の引数でディスパッチできる
- S3より実装が複雑
参照クラス
- 主に、大きなオブジェクトのコピーを作成しないようにするために有用です (参照渡し)
- RefClassを使用する理由の説明
プロト
- ggplot2は元々protoで書かれていましたが、最終的にはS3を使って書き直される予定です。
- きちんとしたコンセプト(クラスではなくプロトタイプ)だが、実際には厄介なようだ
- ggplot2 の次のバージョンはそれから離れているようです。
- コンセプトと実装の説明
R6クラス
関連
-
[解決済み] staticmethodとclassmethodの違いについて
-
[解決済み] メソッドと関数の違いは何ですか?
-
[解決済み] インターフェースと抽象クラスの違いは何ですか?
-
[解決済み] なぜゲッターとセッター/アクセッサーを使うのですか?
-
[解決済み] 抽象メソッドと仮想メソッドの違いは何ですか?
-
[解決済み] オブジェクト名の前のシングルアンダーコアとダブルアンダーコアの意味は何ですか?
-
[解決済み] Pythonのクラスはなぜオブジェクトを継承するのですか?
-
[解決済み] ポリモーフィズムとは何か、何のためにあり、どのように使われるのか?
-
[解決済み】関数型プログラミングはGoFデザインパターンに取って代わるか?
-
[解決済み] 多重継承の具体的な問題点は何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] リスコフ置換原理の例として、どのようなものがありますか?
-
[解決済み] 関数型プログラミングとオブジェクト指向プログラミングの比較【終了しました
-
[解決済み] Java のコア・ライブラリにおける GoF デザイン・パターンの例
-
[解決済み] コヒーシ ョンとカップリングの違い
-
[解決済み] Delegateとは?[クローズド]。
-
[解決済み] オブジェクト指向分析・設計によるエレベータのモデル化 [終了しました]
-
[解決済み] Amazonインタビューの質問です。OO駐車場の設計【終了しました
-
[解決済み] R:スロットとは何ですか?
-
[解決済み] CoffeeScriptのプライベートメンバー?
-
[解決済み] 抽象クラス vs. インターフェース vs. ミキシン