Zundamon's Lesson "Why Singleton is evil?"

  Рет қаралды 16,070

syncprim【プログラミング解説】

syncprim【プログラミング解説】

Күн бұрын

Пікірлер: 24
@agesala1885
@agesala1885 Жыл бұрын
確かに自分達が書くアプリケーションコードにシングルトンを使うなら注意だけどフレームワークの実装ではよく使われてるんだよな
@natsuki9293
@natsuki9293 2 ай бұрын
「絶対使うな」には反対だけど、動画内で全てのユースケースについて言及するのは難しいので、コメントで色んな意見残してくれるのありがたい。
@Aki.K.
@Aki.K. Ай бұрын
「絶対に使うな」に反対と書き込もうとしてた。「安易に使うな」が正しいですね。 対象の業界が違ったりすると本当にフィットする状況があったりするのだけれど、なんでもかんでもアンチパターンのように呼んでレッテルを貼ってしまうと、それはもう原理主義になる。 思考停止せず常に最適な方法を探し続ける事が重要だと感じています。
@mak_in_1232
@mak_in_1232 Жыл бұрын
シングルトンパターンは、ファイルの書き込みなどのIOに代表される操作したい人はたくさんいるけど、実際に操作できるのは1つ、の時に待ち行列とかする時に使う。 そのシチュエーションを自分のアプリケーションコードで書くことはほぼ無いはずなので、使わない、としても基本には問題ないことが多い。 が一点注意は必要。 一番使われるパターンとしてはログ書き込み。 逆に言えば、ログ書き込みを自分でそのままファイル出力で書くと衝突してトラブルになる。 これを知っていれば、ログ書き込みライブラリが大抵あるので良い感じにシングルトンで制御してくれる。
@void-uv7kh
@void-uv7kh Жыл бұрын
分かりやすかったです! 現在デザインパターンを学んでいるので他のデザインパターンについての解説、問題点の動画も待ってます!
@はてなインコ
@はてなインコ 4 ай бұрын
ゲームではサウンドの再生を担当するクラスはシングルトンにしてます 他のクラスに影響を及ぼさず値も返さないvoid関数のみを持つクラスであれば、シングルトンパターンにしても依存関連のバグは生まないはずなので、その場合シングルトンは使っても良いと思っています とはいえ、私も乱用は避けるべきだとは思います 得に大人数でのプロジェクトではstaticのデータは思いもよらない使われ方をしたりもするので
@Geek-zl6bs
@Geek-zl6bs Ай бұрын
これ、自分しか使わない場合はいいんだけど、 ライブラリをユーザーに提供するときは、ユーザーが依存関係とか意識せずにコンストラクタを呼べるメリット があるんですよねー。
@kよろしく
@kよろしく Ай бұрын
javaのspring bootとかの話だとシングルトンはController,Serviceなど一つのインスタントだけでよい場合などで利用されている。 なぜ一つだけにする必要があるのかは無駄にメモリを消費しないようにするため。 シングルトンはマルチスレッドになったときに問題が発生するのでテストが難しい。
@abcz262
@abcz262 3 ай бұрын
シングルトンは単体利用するとバグの巣窟になる。その経験をするとfactoryやfacadeを組み合わせたDIの利点が学べる。GoFは23パターンだが座学レベルだから、業務レベルで使うのはMVC以降の新パターンだから注意やね。
@kky5783
@kky5783 4 ай бұрын
シングルトンを多用するとオブジェクト指向ではなく手続き型と変わらなくなりますね。使い所は見極めないといけない。何でもかんでもユーティリティに突っ込んじゃうとか駄目よねえ。
@polishyou-kp3bq
@polishyou-kp3bq 4 ай бұрын
絶対に使わないようにすべきっていうのは言い過ぎでは? 例えばKotlinは後発の言語だけど、objectっていうシングルトンをサポートする構文が言語レベルで存在する。 何も考えずに使うなっていうのが正解な気がするけど。
@yas-156
@yas-156 2 ай бұрын
シングルトンパターンを使うな、ではありません。グローバル領域の代わりにシングルトンパターンを使うな、です。 そのためにはクラス設計をしっかりとしろ、です。結果として1インスタンスにしかなり得ない場合はシングルトンパターンを使う事になります。 ここから継承はあり得ない、あるいは継承させない時にはスタティッククラス(全フィールド、全メソッドをスタティック)にすることもあります。
@nanaseyou9987
@nanaseyou9987 11 ай бұрын
DIコンテナ使うようにしたので参考にしまーす\(^o^)/
@kosetei1
@kosetei1 4 ай бұрын
それシングルトンというかグローバルインスタンスの問題点では
@ish_pack
@ish_pack Ай бұрын
メンバーが不変なシングルトンをセットとして渡すのは不要なやつが入りすぎてない前提でOK。問題は変更の自由度が高く拡散してる場合。いつどこでどれがどのように
@おさとう-i1y
@おさとう-i1y 11 ай бұрын
敵だ!
@kosetei1
@kosetei1 4 ай бұрын
動画で指してる問題点は、クラス中にグローバルインスタンスを突然使うな、と言うものやん。 シングルトンは初期化前にグローバルインスタンスを使わせないという目的で作られてるんだから、シングルトンを批判するのは間違ってるよ。 少なくともグローバルインスタンスになる想定のクラスを作る側はグローバルにするぐらいなら、シングルトンにすべきだし、 使う側はシングルトンだろうと何だろうとカプセル化した中でグローバルインスタンスにアクセスするな、と言うだけ。
@ya7855
@ya7855 4 ай бұрын
loggerの使い方に困惑してる人、そこそこいるよね
@paseri9697
@paseri9697 6 ай бұрын
接続管理クラスには普通に使うでしょ
@kuramizuki
@kuramizuki Күн бұрын
密結合を避けるって話かな
@paalon3303
@paalon3303 4 ай бұрын
みんなどんな言語・設計の話をしているのか分からないけれど、シングルトンな型はプログラムの基本で、ありふれたものだと思うんだけど違うのかな?値を1種類しか取らない列挙型と何が違うんだろう。
@IzumiKazan
@IzumiKazan 4 ай бұрын
Unity でゲーム作っていますが、シングルトン使えないと詰む。 幾つかの危険性があるというのは理解できるが、使うなというのはチョット何言っているのか判らない。
@mikeneck
@mikeneck 3 ай бұрын
引数が多いこととシングルトンを使うことの関係がわからないかな… ただ、これは Java を前提で考えたからなので、 C++ などの言語ではどうなのかはわからん。なお、 Java では DI(Spring/Quarkus/Helidon...etc) がよくできていて、シングルトンの管理も DI コンテナに任せるだけなので、シングルトンパターン自体がもう解決済みなので、勉強する必要性ももうないかもしれない。
@Aki.K.
@Aki.K. Ай бұрын
自分は DI 自体が好みではないですね。コンパイル型言語の利点をほとんど殺してると感じます。 Go 言語を体験して、余計な物がない世界がどれだけ素晴らしいことかを知りました。
【解説】ずんだもんと学ぶC言語とポインタ【VOICEVOX解説】
20:44
syncprim【プログラミング解説】
Рет қаралды 2,8 М.
組み込みソフトの職人芸 リングバッファ【VOICEVOX】【プログラミング】
8:57
ボイロプログラミング解説
Рет қаралды 10 М.
Кто круче, как думаешь?
00:44
МЯТНАЯ ФАНТА
Рет қаралды 5 МЛН
Увеличили моцареллу для @Lorenzo.bagnati
00:48
Кушать Хочу
Рет қаралды 8 МЛН
行政書士試験、お疲れ様でした。
2:51
ずんだ書士
Рет қаралды 567
Crazy Code to Calculate 1/√x [English Subtitles]
8:14
evima lab
Рет қаралды 39 М.
Unityにおける設計パターン
11:08
Soup Tori
Рет қаралды 6 М.
Zundamon's Lesson "C++ Programming Language"
13:46
syncprim【プログラミング解説】
Рет қаралды 10 М.
Object Oriented Programming (OOP) in C++ Course
1:30:26
freeCodeCamp.org
Рет қаралды 2,6 МЛН