■危険性
かつて偏差値の低い学校向けの情報処理系教科書において「カプセル化は大変すばらしいものであり絶対に使うように」と大体的に宣伝された。
一方、カリフォルニア大学バークレー校の有識者を中心とした「インターネットを作った人たち」は「階層化の有害性(RFC 3439)」として「カプセル化は絶対にやめろ」としている。
大雑把にいうと、教科書の上では素晴らしく、開発を始めた最初のうちは良いが、将来的な改修の際に隠蔽されたデータにアクセスできないと解決できない問題が出てきて、非常に高確率でデスマーチに陥るというのである。
オブジェクト指向の発案者であるアラン・ケイもコーディング規約(頭文字にアンダースコアを付けるなどの命名規則)で縛る程度にすることを推奨しており、アラン・ケイが関わったオブジェクト指向プログラミング言語にはどれも「private」などという概念はない。
ソースコードが存在し改修が可能であればカプセル化しても問題ない。ソースコードがあってもライセンス的に改修できない場合や、そもそもバイナリのライブラリしかない場合などは絶望的である。
https://monobook.org/wiki/%E3%82%AB%E3%83%97%E3%82%BB%E3%83%AB%E5%8C%96(%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0)
探検
カプセル化は愚かな考え
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2020/07/29(水) 17:17:58.13ID:u638n5uE176デフォルトの名無しさん
2020/08/20(木) 01:20:32.10ID:qjxJt4Hn >>170
その責務って奴が言葉だけは聞こえがいいが
現実論として関わるプログラマや関係者の間で
認識がバラバラになる最大のポイントなんだわ。
プログラムやコンピュータを計算機として見てないんだわ。
「この処理を果たしてこの場所で書いていいものか…」
なんて余計な事で頭を悩ます最大の原因なんだわ。
それよりももっとシンプルに、
任意の場所に、受け取った引数を使って
結果を返す関数を作って関数に要求させた演算を
投げて結果だけ受け取った方が生産的だよね?
関数を連鎖的に組み合わせればどんな複雑な演算も
成し遂げることが出来る。
その責務って奴が言葉だけは聞こえがいいが
現実論として関わるプログラマや関係者の間で
認識がバラバラになる最大のポイントなんだわ。
プログラムやコンピュータを計算機として見てないんだわ。
「この処理を果たしてこの場所で書いていいものか…」
なんて余計な事で頭を悩ます最大の原因なんだわ。
それよりももっとシンプルに、
任意の場所に、受け取った引数を使って
結果を返す関数を作って関数に要求させた演算を
投げて結果だけ受け取った方が生産的だよね?
関数を連鎖的に組み合わせればどんな複雑な演算も
成し遂げることが出来る。
177デフォルトの名無しさん
2020/08/20(木) 01:27:25.42ID:ecAQ66Lj それはチーム編成とか統制の問題では
レベルが低い集団だと統制とれずク○の山が積み上がって
収集つかなくなるんだろうな
レベルが低い集団だと統制とれずク○の山が積み上がって
収集つかなくなるんだろうな
178デフォルトの名無しさん
2020/08/20(木) 01:32:57.21ID:Ha0cLvqC >>175
privateメンバ変数は見なくていいって話じゃなかったん?
privateメンバ変数は見なくていいって話じゃなかったん?
179デフォルトの名無しさん
2020/08/20(木) 01:36:01.29ID:ecAQ66Lj クラス外からは気にしなくていいけどクラスを修正するときは見なきゃだめでしょ
privateなら見るべき範囲はクラス内って絞ることができる
privateなら見るべき範囲はクラス内って絞ることができる
180デフォルトの名無しさん
2020/08/20(木) 01:44:41.21ID:Ha0cLvqC >>179
じゃあ、結局見るんじゃんバーカ
じゃあ、結局見るんじゃんバーカ
181デフォルトの名無しさん
2020/08/20(木) 01:48:58.64ID:ecAQ66Lj え
182デフォルトの名無しさん
2020/08/20(木) 01:52:46.09ID:ecAQ66Lj まあ理解できもしないのに真似事みたいなことするのが一番迷惑だから
やりたいようにやりなさい
やりたいようにやりなさい
183デフォルトの名無しさん
2020/08/20(木) 02:03:10.41ID:ecAQ66Lj そもそも>>173の質問がバカ丸出しなのに自覚ないとか
184デフォルトの名無しさん
2020/08/20(木) 07:00:11.09ID:X1nNk3cj >>161
プロパティって、どういうプロパティが存在するかを実行時にインスペクトできるというのも重要な性質だな。
BeansはJavaのリフレクションでそれを実現していたけど、単なるgette/setterではそういうのも忘れられている。
プロパティって、どういうプロパティが存在するかを実行時にインスペクトできるというのも重要な性質だな。
BeansはJavaのリフレクションでそれを実現していたけど、単なるgette/setterではそういうのも忘れられている。
185デフォルトの名無しさん
2020/08/20(木) 07:31:18.16ID:Ha0cLvqC186デフォルトの名無しさん
2020/08/20(木) 07:59:40.26ID:i/J3/2zN >>176
それって、ちゃんと考えて設計するの面倒だから全部グローバル変数でやります、生産性高いよね!といってるのと変わらないじゃないかw
それって、ちゃんと考えて設計するの面倒だから全部グローバル変数でやります、生産性高いよね!といってるのと変わらないじゃないかw
187デフォルトの名無しさん
2020/08/20(木) 08:08:01.01ID:Ha0cLvqC >>186
比較するものがグローバル変数使用のソースしか無くなった?
比較するものがグローバル変数使用のソースしか無くなった?
188デフォルトの名無しさん
2020/08/20(木) 08:33:25.88ID:ecAQ66Lj >>185
> さらにpublic staticならグローバル変数不使用なら
どうせその前提だとそれはクラス内部に状態を持つ必要ない単なるUtilityクラス
内のメソッドだろ?
状態をどうやって管理するかの話だったのに、状態を排除した前提を持ち出してきて
何を認めさせたいの?反論することだけが目的?
> さらにpublic staticならグローバル変数不使用なら
どうせその前提だとそれはクラス内部に状態を持つ必要ない単なるUtilityクラス
内のメソッドだろ?
状態をどうやって管理するかの話だったのに、状態を排除した前提を持ち出してきて
何を認めさせたいの?反論することだけが目的?
189デフォルトの名無しさん
2020/08/20(木) 08:38:25.78ID:Ha0cLvqC190デフォルトの名無しさん
2020/08/20(木) 10:46:21.05ID:ecAQ66Lj 御託はいいからお前の書いたコード見てみたいわ
グローバル変数を使わないCコードが書けるんだろ?(失笑)
C言語ならグローバル変数はある程度使うべきなんだけどね
グローバル変数を使わないCコードが書けるんだろ?(失笑)
C言語ならグローバル変数はある程度使うべきなんだけどね
191デフォルトの名無しさん
2020/08/20(木) 11:25:12.56ID:Ha0cLvqC192デフォルトの名無しさん
2020/08/20(木) 12:04:17.63ID:ecAQ66Lj 下手なりにかけるとは思うよ下手なりに
ただその方法じゃスケールしない
ここまで言ってわからないならもう相手にしてあげないよ
ただその方法じゃスケールしない
ここまで言ってわからないならもう相手にしてあげないよ
193デフォルトの名無しさん
2020/08/20(木) 12:06:02.57ID:ecAQ66Lj 小さいプログラムしか書いたことないんだろうな
194デフォルトの名無しさん
2020/08/20(木) 12:14:50.55ID:KHHtBj+5 結局大規模なものをカプセル化が有効なんだよね
195デフォルトの名無しさん
2020/08/20(木) 12:49:31.45ID:tyNv301J Information Hidingの意味でカプセル化と言ってるやつと
データとメソッドをオブジェクトという構造にひとまとめにすることをカプセル化と言ってるやつがいるから
話が噛み合ってない
前者はオブジェクト指向に関係なくあらゆるプログラミングスタイルで使われてる
規模に関係して重要になってくるのはInformation Hidingの意味でのカプセル化
CでもHaskellでもそれが重要なのは変わらない
後者はオブジェクト指向特有のもの
これはソフトウェアの規模の大小とは関係なく
どういう方向の変化に対して高い柔軟性を確保しておくのがいいかという問題なので
デメリットも考慮しつつ状況に合わせて採用するかどうか判断すべきもの
データとメソッドをオブジェクトという構造にひとまとめにすることをカプセル化と言ってるやつがいるから
話が噛み合ってない
前者はオブジェクト指向に関係なくあらゆるプログラミングスタイルで使われてる
規模に関係して重要になってくるのはInformation Hidingの意味でのカプセル化
CでもHaskellでもそれが重要なのは変わらない
後者はオブジェクト指向特有のもの
これはソフトウェアの規模の大小とは関係なく
どういう方向の変化に対して高い柔軟性を確保しておくのがいいかという問題なので
デメリットも考慮しつつ状況に合わせて採用するかどうか判断すべきもの
196デフォルトの名無しさん
2020/08/20(木) 15:12:12.70ID:ecAQ66Lj Ha0cLvqC ← こいつに関しては
・情報隠蔽
・関心事の局所化
いずれの意味も明らかに理解できていないし、日本語も通じてないから話が噛み合わない
・情報隠蔽
・関心事の局所化
いずれの意味も明らかに理解できていないし、日本語も通じてないから話が噛み合わない
197デフォルトの名無しさん
2020/08/20(木) 16:03:22.57ID:BhReT/u1 お前らのコミュニケーション能力が劣ってるだけだろ
良い大人なんだからきちんと伝わる語彙と文法、論理を示せばわかりあえる
コミュ障のお前らに俺が手本を見せてやるよ
良い大人なんだからきちんと伝わる語彙と文法、論理を示せばわかりあえる
コミュ障のお前らに俺が手本を見せてやるよ
199デフォルトの名無しさん
2020/08/20(木) 17:54:53.75ID:Ha0cLvqC >>196
でも君、メリット説明できないよね?
でも君、メリット説明できないよね?
200デフォルトの名無しさん
2020/08/20(木) 18:34:06.73ID:ecAQ66Lj お前みたいな低能に説明してる時間が無駄
201デフォルトの名無しさん
2020/08/20(木) 19:27:08.80ID:Ha0cLvqC202デフォルトの名無しさん
2020/08/20(木) 19:33:32.26ID:ecAQ66Lj 技術的な関心があってこんなスレ開いてるんだろ?
にしては程度が低すぎる
にしては程度が低すぎる
203デフォルトの名無しさん
2020/08/20(木) 19:47:35.12ID:ecAQ66Lj お前が今まで信じてきたものやってきたことって意味あったの?
204デフォルトの名無しさん
2020/08/20(木) 20:05:43.17ID:Ha0cLvqC205デフォルトの名無しさん
2020/08/20(木) 20:24:20.57ID:ecAQ66Lj オブジェクト指向の理解にすら躓いてるやつと話しても時間の無駄だから
206デフォルトの名無しさん
2020/08/20(木) 21:49:30.63ID:Ha0cLvqC207デフォルトの名無しさん
2020/08/20(木) 21:56:57.19ID:/mEcLGEB 理解できる脳みそがない
208デフォルトの名無しさん
2020/08/20(木) 22:16:51.32ID:KHHtBj+5 >>206
メリットを解説してるけど、解説になってないというサイトを言える?
お前が一番まともだと思うやつね。全てまともじゃないというのなら其の中でいちばん有名なやつ
それをお前が言えるのであれば、俺らはそれがちゃんとした解説になってることを証明するのは簡単だろう
メリットを解説してるけど、解説になってないというサイトを言える?
お前が一番まともだと思うやつね。全てまともじゃないというのなら其の中でいちばん有名なやつ
それをお前が言えるのであれば、俺らはそれがちゃんとした解説になってることを証明するのは簡単だろう
209デフォルトの名無しさん
2020/08/20(木) 22:22:56.32ID:Ha0cLvqC210デフォルトの名無しさん
2020/08/20(木) 22:30:26.14ID:qjxJt4Hn もう「お前はオブジェクト指向理解してない」
に結論づけるのやめにしようや。
かならずそこに収束するやん。
理解してない奴が悪いんじゃなくて
理解し難い概念であるオブジェクト指向が悪い
っていう発想の転換してんだよ
に結論づけるのやめにしようや。
かならずそこに収束するやん。
理解してない奴が悪いんじゃなくて
理解し難い概念であるオブジェクト指向が悪い
っていう発想の転換してんだよ
211デフォルトの名無しさん
2020/08/20(木) 22:31:11.37ID:Ha0cLvqC だいたい言ってることキチガイじゃん
オブジェクトの中身は隠蔽されてるから気にしなくていいって言った口で
修正するときはprivateのメンバ変数使用箇所全部確認して直せって言ってるんだぜ
なんのために誰に隠蔽してたんだよw
完全に無意味じゃんwww
こんなくだらないことやってるんだったら、public staticにするべきだぜ
オブジェクトの中身は隠蔽されてるから気にしなくていいって言った口で
修正するときはprivateのメンバ変数使用箇所全部確認して直せって言ってるんだぜ
なんのために誰に隠蔽してたんだよw
完全に無意味じゃんwww
こんなくだらないことやってるんだったら、public staticにするべきだぜ
212デフォルトの名無しさん
2020/08/20(木) 22:34:10.09ID:Eg0HvHSQ いや、一クラス一メソッドの原則に基づいて設計すればじゅうぶん可能。
213デフォルトの名無しさん
2020/08/20(木) 22:47:07.87ID:KHHtBj+5214デフォルトの名無しさん
2020/08/20(木) 22:48:24.29ID:KHHtBj+5 >>211
> オブジェクトの中身は隠蔽されてるから気にしなくていいって言った口で
それは使う場合の話。つまり開発(担当)者とは別の人は気にしなくていい
> 修正するときはprivateのメンバ変数使用箇所全部確認して直せって言ってるんだぜ
それは開発(担当)者の話
この区別ぐらい基本だろ
> オブジェクトの中身は隠蔽されてるから気にしなくていいって言った口で
それは使う場合の話。つまり開発(担当)者とは別の人は気にしなくていい
> 修正するときはprivateのメンバ変数使用箇所全部確認して直せって言ってるんだぜ
それは開発(担当)者の話
この区別ぐらい基本だろ
215デフォルトの名無しさん
2020/08/20(木) 23:03:27.99ID:Ha0cLvqC216デフォルトの名無しさん
2020/08/20(木) 23:06:06.44ID:KHHtBj+5 >>215
お前バカなのか?
例え自分が開発したとしても、それを使うだけの場合と開発する場合は違うだろ
苦労して頑張ってライブラリを作りました。
そのライブラリを使うときに、ライブラリのソースコードの中身を見ないと使い方がわかりません
ってそれ、作り方しっぱいしてるじゃん
お前はいちいち中身を見てるんだろうけどな
お前バカなのか?
例え自分が開発したとしても、それを使うだけの場合と開発する場合は違うだろ
苦労して頑張ってライブラリを作りました。
そのライブラリを使うときに、ライブラリのソースコードの中身を見ないと使い方がわかりません
ってそれ、作り方しっぱいしてるじゃん
お前はいちいち中身を見てるんだろうけどな
217デフォルトの名無しさん
2020/08/20(木) 23:07:26.61ID:Ha0cLvqC218デフォルトの名無しさん
2020/08/20(木) 23:08:01.72ID:qjxJt4Hn そのライブラリ使ってるブログ検索して
真似するだけなんだよなぁ…
隠蔽要らんやん
真似するだけなんだよなぁ…
隠蔽要らんやん
219デフォルトの名無しさん
2020/08/20(木) 23:11:15.07ID:Ha0cLvqC >>216
は?何言ってるのか意味不明
は?何言ってるのか意味不明
220デフォルトの名無しさん
2020/08/20(木) 23:13:58.87ID:KHHtBj+5221デフォルトの名無しさん
2020/08/20(木) 23:15:04.46ID:KHHtBj+5 頑張ってクイックソートライブラリを作ったおっさんは
これでもうソートするときに中身をいちいち見なくてすむ
って安堵してるわけだ
これでもうソートするときに中身をいちいち見なくてすむ
って安堵してるわけだ
222デフォルトの名無しさん
2020/08/20(木) 23:19:44.69ID:Ha0cLvqC223デフォルトの名無しさん
2020/08/20(木) 23:44:16.56ID:KHHtBj+5224デフォルトの名無しさん
2020/08/20(木) 23:44:18.70ID:iNatz9V0 >>195
そうそう。
カプセル化っていってんだから、オブジェクト指向は関係ない。
Cの構造体でメンバを公開したり非公開にしたりできまっせ。っていうだけのこと。
それを愚かというなら、その程度の規模のプログラムしか作ったことないんだろうね。
そうそう。
カプセル化っていってんだから、オブジェクト指向は関係ない。
Cの構造体でメンバを公開したり非公開にしたりできまっせ。っていうだけのこと。
それを愚かというなら、その程度の規模のプログラムしか作ったことないんだろうね。
225デフォルトの名無しさん
2020/08/20(木) 23:45:52.06ID:iNatz9V0226デフォルトの名無しさん
2020/08/20(木) 23:47:57.89ID:Ha0cLvqC227デフォルトの名無しさん
2020/08/20(木) 23:49:20.30ID:KHHtBj+5228デフォルトの名無しさん
2020/08/20(木) 23:50:03.69ID:Ha0cLvqC >>225
年収1000万超えのカリスマプログラマー(笑)さんですか?
年収1000万超えのカリスマプログラマー(笑)さんですか?
229デフォルトの名無しさん
2020/08/20(木) 23:50:43.49ID:KHHtBj+5 > でも修正するとき見ないと駄目なんだろw
でも風呂に入るとき脱がないと駄目なんだろw
じゃあ服着る意味がないじゃない
といっているのがお前
でも風呂に入るとき脱がないと駄目なんだろw
じゃあ服着る意味がないじゃない
といっているのがお前
230デフォルトの名無しさん
2020/08/20(木) 23:55:00.24ID:iNatz9V0231デフォルトの名無しさん
2020/08/20(木) 23:56:32.42ID:iNatz9V0 >>230
机じゃなくて椅子か。
机じゃなくて椅子か。
232デフォルトの名無しさん
2020/08/20(木) 23:59:10.43ID:Ha0cLvqC >>227
は?だってメンバ変数ってクラス内限定のグローバル変数だぜ
このときのお前のメソッドは俺の作るpublic staticなメソッドより遥かに
不出来で読みにくい
どこでいきなり編集されるかわからないメンバ変数に気を配りながら
メソッドを読むのはぶっちゃけ苦痛でしかない
は?だってメンバ変数ってクラス内限定のグローバル変数だぜ
このときのお前のメソッドは俺の作るpublic staticなメソッドより遥かに
不出来で読みにくい
どこでいきなり編集されるかわからないメンバ変数に気を配りながら
メソッドを読むのはぶっちゃけ苦痛でしかない
233デフォルトの名無しさん
2020/08/21(金) 00:00:02.85ID:f3uMOLT8 >>229
たとえ話が適切であることを証明してからしろよそういうのは
たとえ話が適切であることを証明してからしろよそういうのは
234デフォルトの名無しさん
2020/08/21(金) 00:01:33.82ID:x4g5r5SE > メンバ変数がクラス内限定のグローバル変数
その通りなんだが、声を出して笑ったわ。
君と働く人たちは大変だなw
その通りなんだが、声を出して笑ったわ。
君と働く人たちは大変だなw
235デフォルトの名無しさん
2020/08/21(金) 00:13:52.76ID:8bG0TKoL236デフォルトの名無しさん
2020/08/21(金) 00:14:57.41ID:8bG0TKoL 条件付きで何かを主張し始めたら、
それはもう主張が破綻してるってことなんですよ。
Macユーザー限定だとMacのシェア100%だ!みたいにね
それはもう主張が破綻してるってことなんですよ。
Macユーザー限定だとMacのシェア100%だ!みたいにね
237デフォルトの名無しさん
2020/08/21(金) 00:31:48.71ID:FlbTfju5 >>234-235
俺の作るpublic staticのが遥かに厳密に管理されてて
お前らのはしっかりやってるようでいて
わりかしドンブリだってわかっただろ?
俺はオブジェクト指向のここが特に嫌でメンバ変数がグローバル変数的な問題を起こすところが
クラスが大きくなったときに本当に嫌
つまり俺が嫌いなのはグローバル変数的な動きをするメンバ変数なんだよ
クラスでもちゃんと引数通してアクセスするような造りにしてるときは別にいいぜ
ただそれやるならpublic staticのがいいしやっぱりバカだね
俺の作るpublic staticのが遥かに厳密に管理されてて
お前らのはしっかりやってるようでいて
わりかしドンブリだってわかっただろ?
俺はオブジェクト指向のここが特に嫌でメンバ変数がグローバル変数的な問題を起こすところが
クラスが大きくなったときに本当に嫌
つまり俺が嫌いなのはグローバル変数的な動きをするメンバ変数なんだよ
クラスでもちゃんと引数通してアクセスするような造りにしてるときは別にいいぜ
ただそれやるならpublic staticのがいいしやっぱりバカだね
238デフォルトの名無しさん
2020/08/21(金) 00:43:01.36ID:8bG0TKoL > わりかしドンブリだってわかっただろ?
なにか証明した?
それがわかるというレスを(明示できるなら)やってみてよw
なにか証明した?
それがわかるというレスを(明示できるなら)やってみてよw
239デフォルトの名無しさん
2020/08/21(金) 00:43:45.59ID:8bG0TKoL240デフォルトの名無しさん
2020/08/21(金) 01:05:05.19ID:FlbTfju5241デフォルトの名無しさん
2020/08/21(金) 01:06:35.83ID:FlbTfju5 まあ、デバイス絡むとそいつの状態次第だけど
そこに限定できるじゃん?
そこに限定できるじゃん?
242デフォルトの名無しさん
2020/08/21(金) 02:13:09.68ID:8bG0TKoL >>240
引数が大量になるじゃんw
クラスの中にある変数を全部引数で渡すとしたら
何十個にもなるからな
それとも構造体で渡すのか?
そうすると構造体のうちどこを弄るかわからないから
結局グローバル変数と変わらなくなるなw
引数が大量になるじゃんw
クラスの中にある変数を全部引数で渡すとしたら
何十個にもなるからな
それとも構造体で渡すのか?
そうすると構造体のうちどこを弄るかわからないから
結局グローバル変数と変わらなくなるなw
243デフォルトの名無しさん
2020/08/21(金) 03:01:20.82ID:2Tg4ivJd たしかにベテランになるにつれ、パブリックスタティック関数でやりきる方がすっきりするかもしれん
整理の上手さで
利点はソースがシンプルで早く作れるのと、可読性が良い
ただし整理が上手い場合
もっとも、整理が下手ならクラスもうじゃーっとなるw
無駄にやたらオーバーロードしてたり
整理の上手さで
利点はソースがシンプルで早く作れるのと、可読性が良い
ただし整理が上手い場合
もっとも、整理が下手ならクラスもうじゃーっとなるw
無駄にやたらオーバーロードしてたり
244デフォルトの名無しさん
2020/08/21(金) 03:02:16.79ID:2Tg4ivJd いやオーバーロードはパブリックスタティックでもできるか
245デフォルトの名無しさん
2020/08/21(金) 04:45:13.35ID:xkZp2iCS >>243
もともと小さいプログラムならどっちでやってもすっきり書ける
問題はある程度大きくなると状態とかを取り回す必要が生じてその場合は
毎回staticな関数を呼ぶときにそれらを引数として渡さなきゃいけない
そこまで想像して発言してるか?
もともと小さいプログラムならどっちでやってもすっきり書ける
問題はある程度大きくなると状態とかを取り回す必要が生じてその場合は
毎回staticな関数を呼ぶときにそれらを引数として渡さなきゃいけない
そこまで想像して発言してるか?
246デフォルトの名無しさん
2020/08/21(金) 04:53:48.30ID:xkZp2iCS 小さいプログラムに対してはオブジェクト指向なんて記述が大げさすぎるのは事実だ
でもプログラムが大きくなってくるとその恩恵に預かれる
でもプログラムが大きくなってくるとその恩恵に預かれる
247デフォルトの名無しさん
2020/08/21(金) 04:55:17.21ID:cTh5+k8G 例えばボタンを描画する関数があったとする
そのスタイルとはボタンの色、サイズ、座標
面倒くさいからリンクを貼るけど
https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.forms.button?view=netcore-3.1
AccessibilityObject, AccessibleDefaultActionDescription, AccessibleDescription, AccessibleName,
AccessibleRole, AllowDrop., Anchor, AutoEllipsis, AutoScrollOffset, AutoSize, AutoSizeMode,
BackColor, BackgroundImage, BackgroundImageLayout, ImageLayout, BindingContext,
Bottom, Bounds, CanEnableIme, CanFocus, CanRaiseEvents, CanSelect, Capture,
CausesValidation, ClientRectangle, ClientSize, CompanyName, Container, ContainsFocus,
ContextMenu , ContextMenuStrip, Controls, Created, CreateParams, Cursor
飽きたがこれぐらい渡せばボタンが実現でっきるやろ
そのスタイルとはボタンの色、サイズ、座標
面倒くさいからリンクを貼るけど
https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.forms.button?view=netcore-3.1
AccessibilityObject, AccessibleDefaultActionDescription, AccessibleDescription, AccessibleName,
AccessibleRole, AllowDrop., Anchor, AutoEllipsis, AutoScrollOffset, AutoSize, AutoSizeMode,
BackColor, BackgroundImage, BackgroundImageLayout, ImageLayout, BindingContext,
Bottom, Bounds, CanEnableIme, CanFocus, CanRaiseEvents, CanSelect, Capture,
CausesValidation, ClientRectangle, ClientSize, CompanyName, Container, ContainsFocus,
ContextMenu , ContextMenuStrip, Controls, Created, CreateParams, Cursor
飽きたがこれぐらい渡せばボタンが実現でっきるやろ
248デフォルトの名無しさん
2020/08/21(金) 05:34:11.16ID:FlbTfju5 >>242
どっちでもいいよ
そこで見た目にビビってやめちゃうのが一番の害
それだけ複雑な処理だから仕方ないんだよ
逆にそれだけのもんをグローバル変数で空中戦なんかするから手に負えなくなる
どんなにでかくなっても引数と戻り値に打ち込めや
逆にそこの検閲を徹底するから楽になるんや
どっちでもいいよ
そこで見た目にビビってやめちゃうのが一番の害
それだけ複雑な処理だから仕方ないんだよ
逆にそれだけのもんをグローバル変数で空中戦なんかするから手に負えなくなる
どんなにでかくなっても引数と戻り値に打ち込めや
逆にそこの検閲を徹底するから楽になるんや
249デフォルトの名無しさん
2020/08/21(金) 05:36:23.70ID:FlbTfju5250デフォルトの名無しさん
2020/08/21(金) 07:03:30.98ID:xkZp2iCS >メンバ変数ってクラス内限定のグローバル変数だぜ
最強の迷言
最強の迷言
251デフォルトの名無しさん
2020/08/21(金) 08:40:41.98ID:FlbTfju5252デフォルトの名無しさん
2020/08/21(金) 09:09:18.44ID:x4g5r5SE お前がコーディングしたプログラム貼れよ。
一つのメソッドで1000行とかそれ以上書いてそうなんだよな。
一つのメソッドで1000行とかそれ以上書いてそうなんだよな。
253デフォルトの名無しさん
2020/08/21(金) 09:57:08.78ID:Tdq0GS4g254デフォルトの名無しさん
2020/08/21(金) 10:00:09.80ID:Tdq0GS4g 変数は必要最小限にしたが良い
数もスコープも
数もスコープも
255デフォルトの名無しさん
2020/08/21(金) 10:30:15.77ID:aoU7uP7R 要するにゴミのような想像を絶する現場で使われてる言語がJavaだった、と
すると袈裟が憎い理論も成り立つ
が、どんなパラダイムのどんな言語を使っても底辺ドカタはゴミを作り出す
とすると、一定水準以下の知能の物体は習得できない、面倒な言語を作った方がいい
すると袈裟が憎い理論も成り立つ
が、どんなパラダイムのどんな言語を使っても底辺ドカタはゴミを作り出す
とすると、一定水準以下の知能の物体は習得できない、面倒な言語を作った方がいい
256デフォルトの名無しさん
2020/08/21(金) 10:41:29.06ID:FlbTfju5 >>254
だからってその解決方法がグローバル変数じゃ駄目なわけよ
引数外してグローバル変数や突然取得できる何らかの手法例えばメンバ変数に逃げるのはやってはいけないこと
最低限にするのであって本来必要な引数までカットしていいわけではない
だからってその解決方法がグローバル変数じゃ駄目なわけよ
引数外してグローバル変数や突然取得できる何らかの手法例えばメンバ変数に逃げるのはやってはいけないこと
最低限にするのであって本来必要な引数までカットしていいわけではない
257デフォルトの名無しさん
2020/08/21(金) 10:42:26.76ID:cTh5+k8G >>256
必要な引数が多かったらどうすんの?
必要な引数が多かったらどうすんの?
258デフォルトの名無しさん
2020/08/21(金) 10:49:23.77ID:FlbTfju5 >>257
処理を分けるかそれができなければ
その引数はそのメソッドに必要なものなので潔く引数にズラズラ並べる
こうすることで
引数を通した時点で型チェック
メソッドを呼び出した頭で値のチェックができ、適切なエラーが出せるし出しやすい
無くしてしまっては何にもわからない
呼び出した側はその変数がそのメソッドに使われているかどうかすらわからない
エラーを出してもそれが内包されてるメンバ変数では一体何が起こったのかさっぱりわからない
処理を分けるかそれができなければ
その引数はそのメソッドに必要なものなので潔く引数にズラズラ並べる
こうすることで
引数を通した時点で型チェック
メソッドを呼び出した頭で値のチェックができ、適切なエラーが出せるし出しやすい
無くしてしまっては何にもわからない
呼び出した側はその変数がそのメソッドに使われているかどうかすらわからない
エラーを出してもそれが内包されてるメンバ変数では一体何が起こったのかさっぱりわからない
259デフォルトの名無しさん
2020/08/21(金) 10:57:12.37ID:wUhiKu+g >>258
俺はお前が何をやってるのかさっぱりわからないよw
結局のところ、お前はお前の言うやり方で、現実的に意味のある動作をするそれなりの規模のプログラムを書いたことはあるの?
実際のスケール感を無視して、頭の中の小さなサンプルだけをイメージしながら机上の空論を並べ立ててるだけでないの?
そりゃ自分に都合のいいモデルだけをイメージしてれば、サイキョーのカンペキな理論ができるわな
俺はお前が何をやってるのかさっぱりわからないよw
結局のところ、お前はお前の言うやり方で、現実的に意味のある動作をするそれなりの規模のプログラムを書いたことはあるの?
実際のスケール感を無視して、頭の中の小さなサンプルだけをイメージしながら机上の空論を並べ立ててるだけでないの?
そりゃ自分に都合のいいモデルだけをイメージしてれば、サイキョーのカンペキな理論ができるわな
260デフォルトの名無しさん
2020/08/21(金) 10:58:41.37ID:xkZp2iCS もうこのバカ相手にするのやめません?
261デフォルトの名無しさん
2020/08/21(金) 11:01:10.93ID:cTh5+k8G262デフォルトの名無しさん
2020/08/21(金) 11:01:36.84ID:cTh5+k8G263デフォルトの名無しさん
2020/08/21(金) 11:01:59.90ID:cTh5+k8G >>260
おもちゃを取り上げないでくれないかな?w
おもちゃを取り上げないでくれないかな?w
264デフォルトの名無しさん
2020/08/21(金) 11:11:15.32ID:FlbTfju5265デフォルトの名無しさん
2020/08/21(金) 11:29:37.79ID:cTh5+k8G266デフォルトの名無しさん
2020/08/21(金) 11:30:05.87ID:cTh5+k8G 何度言っても理解できない。アホなのか?本当のアホなのか?
267デフォルトの名無しさん
2020/08/21(金) 11:33:26.05ID:cTh5+k8G 引数で渡すと、この値なんなんですか?ってなる
「内部で使用するフラグです。」
初期化関数を呼んだら内部で必要なデータを返しますので
次呼ぶときに渡してください。
ファイルハンドルっていうんです。
みたいなね。
内部情報が一つだけならいいが
複数あったらどうするのか?
ファイルハンドルは内部に確保したメモリに
シーク位置を紐付けて保存してるんですよ
なんてことになるw
「内部で使用するフラグです。」
初期化関数を呼んだら内部で必要なデータを返しますので
次呼ぶときに渡してください。
ファイルハンドルっていうんです。
みたいなね。
内部情報が一つだけならいいが
複数あったらどうするのか?
ファイルハンドルは内部に確保したメモリに
シーク位置を紐付けて保存してるんですよ
なんてことになるw
268デフォルトの名無しさん
2020/08/21(金) 11:47:09.66ID:UrYJ9hGn >>247
ボタンごときに膨大なプロパティがあるのがおかしい
整理できてないw
さておき、実際にはほとんどデフォルトで使うから、「クラスなら面倒がない」と言いたいのかな
関数でも名前付き引数、あるいはコレクション渡しで未設定ならデフォルト、で省略できると思うが
まあコレクションはオブジェクト指向の基礎なので、これを使えば既にオブジェクト指向なんだろうけど
WinAPIもスタティック関数でオブジェクトを動かすので、スタティック関数は別にオブジェクト指向の対立概念ではないが
ボタンごときに膨大なプロパティがあるのがおかしい
整理できてないw
さておき、実際にはほとんどデフォルトで使うから、「クラスなら面倒がない」と言いたいのかな
関数でも名前付き引数、あるいはコレクション渡しで未設定ならデフォルト、で省略できると思うが
まあコレクションはオブジェクト指向の基礎なので、これを使えば既にオブジェクト指向なんだろうけど
WinAPIもスタティック関数でオブジェクトを動かすので、スタティック関数は別にオブジェクト指向の対立概念ではないが
269デフォルトの名無しさん
2020/08/21(金) 12:00:44.90ID:pQPzrAvT >>267
内部で〜はお前が出してるメッセージの問題だよね?
内部で〜はお前が出してるメッセージの問題だよね?
270デフォルトの名無しさん
2020/08/21(金) 12:03:46.30ID:pQPzrAvT271デフォルトの名無しさん
2020/08/21(金) 12:08:14.57ID:cTh5+k8G >>268
> ボタンごときに膨大なプロパティがあるのがおかしい
現実見ろよ
お前が言う方法で、create_button関数作ってみ
ボタンの属性として、ボタンの値、無効ボタンかどうか、
位置x、y、z座標、文字の色、ボタンの色、枠のスタイル、
ボタンの余白、文字の右寄せ・左寄せ、フォント、
まだまだあるが、これぐらいでいいだろう?
ボタンを作ったらこれだけの属性が初期設定として
設定される
はい、引数で作ってみてください
あと将来の拡張性も考えてね。
増えるかもしれない
> ボタンごときに膨大なプロパティがあるのがおかしい
現実見ろよ
お前が言う方法で、create_button関数作ってみ
ボタンの属性として、ボタンの値、無効ボタンかどうか、
位置x、y、z座標、文字の色、ボタンの色、枠のスタイル、
ボタンの余白、文字の右寄せ・左寄せ、フォント、
まだまだあるが、これぐらいでいいだろう?
ボタンを作ったらこれだけの属性が初期設定として
設定される
はい、引数で作ってみてください
あと将来の拡張性も考えてね。
増えるかもしれない
272デフォルトの名無しさん
2020/08/21(金) 12:24:30.10ID:FlbTfju5 構造体でも作れば見た目シンプルになるで
273デフォルトの名無しさん
2020/08/21(金) 12:28:47.71ID:AwYjNd+Z274デフォルトの名無しさん
2020/08/21(金) 12:32:51.09ID:AwYjNd+Z 結局、引数で複数の情報を与えるのはずらずら何十個の並べれば
また可能だとしても、戻り値が一つしかないから現実的じゃないんだよね
クラスを使うのは、一つのメソッドで
複数のプロパティを操作することがあるからなわけ
例えばcreate_buttonだったら複数のプロパティを初期化する
戻り値で複数の値を返せないし、戻り値を構造体とかクラスにして返すとしたら
結局それはお前の言うクラス内のグローバル変数と同じになってしまう
引数の構造体(クラス)のうちどこを変更するかわからないからね
また可能だとしても、戻り値が一つしかないから現実的じゃないんだよね
クラスを使うのは、一つのメソッドで
複数のプロパティを操作することがあるからなわけ
例えばcreate_buttonだったら複数のプロパティを初期化する
戻り値で複数の値を返せないし、戻り値を構造体とかクラスにして返すとしたら
結局それはお前の言うクラス内のグローバル変数と同じになってしまう
引数の構造体(クラス)のうちどこを変更するかわからないからね
275デフォルトの名無しさん
2020/08/21(金) 12:50:37.55ID:AwYjNd+Z 引数で渡すと将来の修正時の拡張性と互換性が犠牲になる
これはいい知見だ
これはいい知見だ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 米大統領報道官「日本と強固な同盟維持、中国とも協力」 [少考さん★]
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★2 [蚤の市★]
- ミス・ユニバース フィンランド代表の「つり目」写真が波紋… 本人釈明も批判やまず 協会謝罪「徹底的に検証」へ [冬月記者★]
- 【おこめ券】鈴木憲和農相 小泉前農相の備蓄米放出を“反省”「備蓄の円滑な運営を図ってまいります」 [Hitzeschleier★]
- JA全農が「新おこめ券」…来年9月末の有効期限を新設、必要経費のみ上乗せ ★2 [蚤の市★]
- 1人3千円の食品高騰対策、何に使える? あいまいなまま衆院通過 [蚤の市★]
- 【悲報】維新の政治資金でガールズバー、高市首相「良いか悪いかは国民の皆さまが判断されること」 [115996789]
- 【マギレコ】VIPでマギアレコード&マギアエクセドラ【まどドラ】
- 中国人、ガチ超正論。「日本人がアイヌに対してやったことを『問題ない』とするなら、中国が日本人に同じことをしても文句ないだろう?」 [314039747]
- 【悲報】新米、全く売れなくて倉庫が満杯になってしまうwwwwwwwwwwwwwwwwwwww [802034645]
- 衛生的に気持ち悪くて性風俗店行ったこと無いんだ
- いじめられてる男子中学生だけど質問ある?
