はてなキーワード: カプセル化とは
これまでいろいろな書籍やサイトから情報を得てきて、オブジェクト指向のプログラムを、「知識とスキルを持った職人をいっぱい雇ったプロジェクト」というように理解している。
極論を言えば、オブジェクト指向=擬人化思考というように捉えているけれど、この理解はどの程度あっているのだろうか?
とすると、
職人は、会社の指示によって働き、持っている知識とスキルを使って仕事をする。
知識やスキルは、各職人が会社に指示されたマニュアルを読んで覚える。
とか
オブジェクト指向が特に有用なのは、特に複数の会社と協力して作業する場合である。
そのような大規模なプロジェクトであるならば、各企業の職人一人一人に指示するよりも、マニュアル一つで指示した方が簡単だし、間違いが少ない。
オブジェクト指向の三大概念として、いろいろな媒体で紹介されている「継承」「ポリモーフィズム」「カプセル化」も、それぞれ「一つのマニュアルを用意して、職人に利用してもらいやすくする」「各職人は、自分にとって必要なマニュアルの一部を読んで知識とスキルを手に入れる(ここの理解は自信がない)」「マニュアルは、職人によって勝手に書き換えられないようにするべき」みたいな感じでなんとなく理解している。
ただ、根本のオブジェクト指向がよくわかっていないため、これが合っているのかもわからない。
のだけれど、なんとなく色々勉強してきて、複数人とプログラムを組むとか、大きなプロジェクトとかでもない限り理解していなくても問題なさそうなので、回収率100%を超える競馬プログラムが出来上がるのを夢見て寝ます。
この3点は私も共通している。両親については片親で過干渉ではあったが、しかし大切にはしてくれていた。それでもあなたと同じ思考から抜け出せない。これは、境遇、個人の努力を超えて、先天的な脳の作り(ADHD)が大きく関係しているのではないか。これに人間関係の失敗経験が積み重なりフィードバックとなり囚われの強化、すなわち脳の悪い思考プロセスのネットワークの強化になっていくと仮定している。
人間関係の失敗でさらにこの自己評価が補強されてしまい、どうにも身動きができなくなってしまったのだけど、ここから脱するためにやったことを書く。
"考え方"についてはプロに任せ、むしろ考えない方法を身につけたほうがいい。
まず、ADHDはワーキングメモリが足りないため問題を大雑把にまとめて考えてしまう。
全体を捉えて、最も期待値の高い解決方法を理性的に選べている自信はあるだろうか。あなたはある程度客観視できているだろうから落ち着いているときに考えればおそらく、高ストレス時に思っていたことが実は的外れだったという経験があるんじゃないかと思う。
例えば就労が困難だったというケース(あくまで一般論の例)を考える。そうなる理由はそんなにシンプルではなく大量の変数が複雑に絡んでいる。 しかし、"自分が馬鹿だから仕事ができない"という形で問題をカプセル化してしまえば、ワーキングメモリが節約できるため、ADHDは問題を単純化して自分を責める。一時的にはそれが一番ストレスが少ないのだ。本当は"環境が悪かった。定型発達でも仕事が原因で自殺していることもある"など、別の可能性が考えられるのに。
では、いつも正しい判断をするにはどうしたらいいだろう?これは、"自分の判断を常に保留する"が疲弊したADHDには正しい方針だと思う。判断は常にプロに任せる。それはどこに住んでどんな仕事をすればいいか、という大局的な判断だけでなく、"誰が悪いのか"、"なぜこうなったのか"、"どうして不快なのか"なども含めてだ。特性上、強力に単純化してしまうので疲弊してIQが下がっている今はどれも的外れになる。
寝て起きたら、デモデモダッテ思考が顔を出した。父と離れたいなんて、私のわがままじゃないかと疑っている。よく分からないから、今日、相談支援専門員さん(何回かソーシャルワーカーさんと書いてるけど、勘違いでした)に電話してみようかと思う。
だからこれで電話できたあなたはとても賢いし、自分を客観視するセンスがある。
マインドフルネス瞑想がよい。方法は適当にぐぐるとでてくる。(大きいトラウマがあると難しい場合がある。↓に追記あり) 浮かんだアイディアを0.5秒以内に棄却できるようになってくれば、鬱でも躁でも、脳の暴走状態を食い止めやすくなる。
人生史を書くとか考えたものをすべて紙に出すとか、自分のトラウマを再認識するようなセラピーは無理に実践しないほうがいい場合がある。プロのセラピストでない限り PTSD のトリガーになりかねないので、慎重に。
ストレスは回避反応を高める。ただでさえADHDは弱いとされる、長期的な価値を評価するための前頭前野が働かなくなり、極端な単純化をし始める。生存のヒントを得るために(存在しないかもしれない)脅威をあちらこちらに探し始める。
IQを上げる方法はたくさんある。有酸素運動と無酸素運動を組み合わせたインターバルトレーニング、読書、楽器演奏、人との会話、人と比べて自分が優れていると実感する、など。しかし、どれもそれができる基盤が無ければ成り立たない。基盤は、どんな形であれ"安心できる生活"だ。
プロに相談して模索しているのはとても素晴らしい。これこそ良い判断だと思う。
あなたの場合、愛着のある肉親だろうが、親元、実家から離れるのは最優先だ。トラウマ体験のある場所にいると記憶のトリガーが多く、思考のノイズが高まる。瞑想を頑張っていても考えの棄却という技術では捌ききれない量になる。例えるなら、イラク戦争でPTSDになった米兵が戦後もその戦場の脇で延々とセラピーを受けるなんてことがあるだろうか。アメリカに帰って湖で犬とキャンプでもしているべきだろう。
追記や他へのレスを見ると、同居した者と揉めた経験からグループホームや同棲に抵抗があると言っている。
↓もそう。私もこの囚われとは長年付き合っている。 自分の場合、親には愛されているはずなのに。
環境を変えても、私がダメだからダメだと、ずっと思ってた。愛されるためには愛される能力が必要で、残念ながら私にはそれが決定的に欠けていると思えるから。
ちょっとつらいかもしれないから今は受け入れられなくてもいいのだけど、これこそADHD特有の極度な問題の単純化の例になっている。あのときうまくいかなかったという一例を以って、だからあれはやめたほうがいいのだ、というように考えるとワーキングメモリが大幅に節約できる。実際は、相手が特別クズだったとかグループホームガチャとか色々分解できて、次の一手はまたフラットに考えることもできるはずなのに。
今は総括(判断)せず、プロに任せて、最善の環境に居れるまで模索するのがよい。次がダメだったとしても単純化せず、また次のチャンスを模索する。単純化のバイアスを除いて考えれば、定型発達でも転職、離婚、病気のような失敗は何度も経験するのだ。
人間のつながりが欲しいと思ったとき、そうできている人とのライフスタイルを比較するのがいいと思う。親族、家、お金、車などの財産ではなく、朝起きて何をしているのか、どんな本を読んでいるのか、どんなご飯を食べているのか、どんな娯楽を好んでいるのか。"考える"代わりに"行動する"のがよい。考えても考えても財産もライフスタイルも変わらないどころか極度の単純化で誤った判断をするのが疲弊したADHDの末路だ。
安全な生活が得られるようになってきたら、形から入る。脳は考えて変わるわけではなく、運動、適度な負荷(勉強、練習など)、食事で変わるのだ。脳に振り回されて困っていたのだから、脳を手なずけるのがよい。だから順番を変える。"まともな自分になれば孤独ではない生活が得られる"というのはやめて、"孤独じゃない人の生活を真似てみればまともな自分になれる"ということ。
私も自分自身そう思いたいという部分はあるんだけど、見ている文章を見る限り全然馬鹿ではない。というか文章のみのコミュニケーションであれば誰も重度の発達障害とは感じない。
これはこの番組の予告だけ見ても思った。もし道路で出会ったらまるで思考が通じない人にしか見えないのに、文章は物凄く理知的で美しいのだ。
https://www2.nhk.or.jp/archives/tv60bin/detail/index.cgi?das_id=D0009050591_00000
我々は入出力や瞬発的な行動については困難があるかもしれない。しかし、中身までおかしいわけじゃない。
親さえもそれはわかってくれなかったかもだけど、今は世の中に知見が溜まってきているし、お互いこのようにネットで話すこともできるようになってきた。だから幼少期よりはまだ模索できる道は多いはずだ。
おせっかいかもしれないけど増田がきっかけで過集中に入ったので最後まで書きました。
スターがついていたので。
hamamuratakuo 個人的な見解だが、頭が悪い人に共通している特徴は「嘘つき」であること。全てを曖昧にしており、現実を直視できず、被害妄想に耽溺。それゆえ認識が歪んで知性も劣化している。嘘をやめることが改善のスタート地点
言っていることの大筋は私と同じだ。しかし、それを「頭が悪い」「嘘つき」という主観性の強い表現であえて言い直す必要は無い。今回で言えば頭が悪いのではなくワーキングメモリが小さいと言えるし、嘘つきなのではなくワーキングメモリの節約を無意識に行っている、というようにより具体性のある話にしたつもりだし、「嘘をやめる」に対応する極度の単純化をやめる方法も示したつもり。
これも脱線するが、自分は発達障害を自覚する前、定型発達的な人々に対してリスペクトを欠いた態度を取っていた。彼らは(今思えばADHDの私に比べれば、だが)会議で発言しない、積極性が無い、すぐ行動しない。「頭が悪い」愚鈍な人々だと思っていた。つまり自分が得意なことができない人を簡単に「頭が悪い」と言うのは主観的すぎる。特に今回の文脈では発達障害という特異な脳の状態について話しているのだから、少し配慮してもいいんじゃなかろうか(隙自語同士なのでまぁいいけど)。発達障害と知的障害は異なる。高IQの発達障害は大勢いるし、発達障害の診断時にIQテストを受けるのでむしろ発達障害者のほうが自分のIQを正しく理解している。
misarine3 嘘ではなく現実を正しく把握できなsので偏って間違った認識を伝えてしまうケースもある。あとADHDかと思ったら発達性トラウマ障害(複雑性PTSD)というケースもあるので一考してほしい。
programmablekinoko マインドフルは合わなかった。多動優先だとじっとしているのが難しい。有酸素運動で強制的に頭空っぽにするか、NBackやラジオ流しながら何かを音読するなど、脳内のノイズをかき消す方法が自分には良かった。
https://anond.hatelabo.jp/20220118124641
これはそうかもしれない。実は自分の場合は自己流の荒療治でトラウマの追体験を繰り返してみたり瞑想でつらいことを棄却する訓練をやってみたりと実験してみた。この中で瞑想が継続できたということなので、n=1 なのは確か。カウンセラーや精神科医などプロに相談しながらがよい。
本当は睡運瞑野がうまくかみ合えばいいのだけど、睡運瞑野ができるのは睡運瞑野がうまくいっているときだけという難しさがある。 瞑想の代わりに運動する、それもできないなら何もせず寝てしまうなどで、あまり考えないようにできるといい。
sisya 前提が少しおかしい。「頭が悪いから人に大事にされない」ではなく「考えが足らずに人が傷つくことをしてしまっているが、そのことに自分が気づけないので遠ざけられる」なので、相手にその旨先に伝えてくといい。
自分のアイディアはこれとも違う。そもそも「大事にされていない」「遠ざけられている」という認識が正しくないかもしれないというのが私の立場だ。元増田についても、すでにこのスレッドやブクマで多くの人から大事にされているのだから大きな反例になっている。 少なくとも汲める事実は「両親からのモラハラがあった」「グループホームで暴力を起こした人がいた」ということだけだ。これを「遠ざけられている」と読み取ることは、私が何度も言っている極端な単純化だ。
もし「自分の考えが足りず人を傷つけるのだ」というところに根拠を置いてしまうと、「自分の考えを洗練させなければならない」という出来もしない曖昧な課題が作られてしまう。私もおそらく元増田も、このような袋小路でさんざん自分を苦しめてきた。私の主張が伝わっていれば、期待値が高い対処は例えば「なるべく親元から離れる」「相性のいいグループホームを探し、医師など専門家の支援を受ける」などになる。的外れな自省をさせる意味は無い。
aox ASMRに限らず増田さんみたいにスパスパ考えられて実行できるなら誰も苦労しないのでは ʕ•̫͡•ʕ•̫͡•ʔ•̫͡•ʔ•̫͡•ʕ•̫͡•ʔ•̫͡•ʕ•̫͡•ʕ•̫͡•ʔ•̫͡•ʕ•̫͡•ʕ•̫͡•ʔ•̫͡•ʔ•̫͡•ʕ
私も偉そうに書いてしまっているので労せずこれに至ったと思われても仕方ないが、これに至るまでは大変な苦労をした。自殺未遂をして警察に保護されそのまま措置入院(強制)というのを何度かやった。ずっと不登校だったが一念発起して就職した会社も、それで復職できず退職した。短絡的な行動で多くの人間関係を失った。何年も睡眠が浅く、悪夢で夜中に飛び起きることが多かった。今もギリギリのバランスでやっと立っているが、それでも以前に比べれば前向きに暮らせている。むしろ読む人がこんな苦労をせず役立ててくれるなら幸いだ。
良い言語だと思うが、不満がある。
という愚痴がある。他人の書いたものを読む分には良い言語だと思うよ。
型ヒントはコンパイル時のエラーにならないじゃん。だったら、いらなくね?タプルは複数の値を返すときに使うのね。Go みたいだね。または Ruby の Struct みたいな。
あれ嫌いな人おるのか。俺も好きじゃないが。純粋に Haskell と同じ文法だったら良かったのにね。
アレはキモいね。素直に ?! で良いと思う。というか、Python は英語圏の人も納得はできないだろ、っていう文法が多くないか?
というのは同意する。ただ、書くときにそうは思わない。例えば、with 構文は Ruby の方がブロックを抜けたらクローズするという方針のが良いと思う。
言ってないけど。
Cから派生したCやJavaなどでやってるのはオブジェクト指向プログラミング。
クラスというものを作って、「カプセル化」、「継承」、「ポリモーフィズム」を三本の矢にして
これを提唱しているのはオブジェクト指向プログラミングを日本語で解説しているWikipediaなので間違いない。
現在の日本人に対してオブジェクト指向とは何かと問えばこれのことなので、これさえ押さえておけば会話に問題はない。
なまじっか真のオブジェクト指向に精通していると、英語版wikipediaでオブジェクト指向を学び、smalltalkなんかかじった日には、現代日本におけるオブジェクト指向がいかに偽物かわかるだろうが、奇異にみられるのはあなた自身であることを付け加えておく。
1a. 簡単なライブラリとかAPIとかのオープンソースのやつを全部読めばよくね?例えばprintf()の中身とか。
あるいは自分で作ってみればよくね?
2. alloc()すると空きがあれば8byte確保してそのアドレスを返します。空きが無ければNULLを返します。
これくらいは自分で考えて作れるでしょ?
そういう事の積み重ねで高度なことをやってる。
1b. オブジェクト指向を知っているならカプセル化も知ってるでしょ?中身を知らなくても外のインタフェースだけ知っていれば使える。てか全ての中身を理解しようとしてたら何もアプリケーションなんて作れないです。
例えば俺ははてな匿名ダイアリーが裏でどのように動いているのかわからないけど、毎日記事を書いてる。これがカプセル化。
2a. 一般人に説明するには比喩を使うしかないでしょう。あと、その話題の領域でオブジェクト指向は関係なくね?
2b. それと、べつに「知らないことがあるけど使っている」のはITだけじゃないです。たとえば全身麻酔の原理とか最近までよくわかっていませんでした。航空力学もあんまりわかってないんじゃなかったっけ?なぜ飛行機が飛ぶのか。船も、何故かよくわからないけど速くなる装置があるんですよね。流体力学はよくわからかないです。こんぺいとうがトゲトゲになるメカニズムも解明されていない。べつにブラックボックスはITだけじゃないです。
4. 例えば、長い時間をかけて改善を重ねて2015年の時点で最高の出来のWindows10が発売されたわけです。それを「今更出すな。1995年の時点でWindows10を出せ」とか言われても無理です。強くてニューゲームかよ。
本人がポエムつってんだから、ポエムでいいじゃん。そんなの人それぞれだろ。オブジェクト指向のカプセル化だなんて深淵な概念だし、この問いなんて哲学的であるとさえいえる。だいたい、カプセル化とは「データとそれを操作する手続を一つにして,オブジェクトの内部に隠ぺいすること」である、なんていったら、怒られるんじゃないか。隠蔽ってなんだよ。トートロジーかよ。この問題に正解したとしてカプセル化を使いこなせるわけでもないし、分かった気にさせるこけおどしでしかない。そういう霞みたいな文章をポエムっつんだよ。
※ ただし一般的にはポエムという語にはそういう下卑た意味合いはないと思います。 悪い意味でポエムという言葉を使うのは確かによくない風潮だと思うので今後は控えるようにします。俺は元増田ではありませんが。
「カプセル化等の用語を覚えること」と「良い設計ができること」を対比して、前者を批判しているのだから、良い設計ができる能力は「技術者としてのスキル」に含まれるとしか読み取れない。
「カプセル化等の用語を覚えること」と「良い設計ができること」を対比して、前者を批判しているのだから、良い設計ができる能力は「技術者としてのスキル」に含まれるとしか読み取れない。
情報処理技術者試験の資格を取っても実質的に得るものはありません。「実質的に」というのは、技術者としてのスキル向上に貢献するということであり、「報奨金が貰える」とか「履歴書に書ける」などの技術と無関係なものを含まないということです。
なぜ、情報処理技術者試験が役に立たないのかと言えば、出題内容が表面的な知識問題に極端に偏っており、本質的な理解を問うていないからです。たとえば、オブジェクト指向の三要素に「カプセル化」「継承」「ポリモルフィズム」がありますが、これらを御題目のように唱えていても何の意味もありません。しかし、情報処理技術者試験ではこれらの用語さえ覚えておけば、しっかり点になります。
https://www.fe-siken.com/s/kakomon/19_haru/q42.html
こんなのは単なるポエムであり、これが解けたところでコードが書けるわけでも、良い設計ができるわけでもありません。
数学で喩えれば、「加減法」とか「代入法」のような用語を暗記して、具体的な連立方程式の解き方は分からないようなものです。
ひどい問題は挙げればキリがありません。
https://www.ap-siken.com/s/kakomon/22_haru/q44.html
図の名称を答えさせる問題。図を読み取らせる問題なら、まだ理解できますが。そもそも、UMLなど別に技術者として知っておくべき知識でもありません。
https://www.fe-siken.com/s/kakomon/23_aki/q50.html
これも、こんな分類自体、覚えたところで何にもならないわけですが、その用語を答えさせる問題。いかに、この試験がエンジニアリングやプロジェクト管理の本質と関係ないかがよく分かります。
極めつけはこれ。
https://www.fe-siken.com/s/kakomon/17_haru/q52.html
地方の公立中学校の定期試験レベルのひどい問題です。出題者は、1だの2だの4だの7だのといった数字と語句の対応を覚えることが重要だと思っているのでしょうか。
つまり、ある種の発達障害ではない意識高い系ポエマーを認定するための試験であり、そもそも技術者のための試験ではないということです。あとは、中小企業診断士などを受ける人が試験免除を獲得するためとか。
そもそも、コンピュータやプロジェクトマネジメントの技術を、資格試験で勉強しようというのがピントがズレています。それらは既に良質な解説書が豊富にあるのだから、それで勉強すればいいのです。
あなたがどうしてもビッグマックを食べたいと思い、マクドナルドに入ったとする。「ビッグマックとコーラ」と頼むあなたに、当然のように店員はこう言うだろう。
何言ってんだ、ビッグマックとコーラだけでカロリー的に大冒険なのに、この上ポテトなんか食うわけねえだろ……そこまではいい。そこでどう答えるか、が問題なのだ。私ならこう答える。
「二品だけで結構です」
面倒なときは、何も言わずに右手を出して左右に振るかもしれない。けれど、世間では今こう答える人が多いのではないか。
「大丈夫です」
最初にこれを聞いたときに、妙な答え方をする人もいるものだと思った。「ポテトがなくても大丈夫」ということなのだろうが、「大丈夫」だけではその意向は伝わらないんじゃなかろうか。まあでも、その補完で問答としては成立するから、それ以上他人の言葉遣いにどうこう言う必要もないのかな……私は絶対に使わないけどね。それ位に思っていた。
そのうち、私はあるきっかけで転職することになった。次の仕事が始まるまでに二か月程の空きがある。何もしないでいるのも時間と金の無駄だしどうしよう、と思っていたら、丁度選挙が行われることになった。出口調査のバイトが出たので飛びついたわけだ。
出口調査はなかなかに過酷なバイトだった。丁度夏だったのだが、炎天下にボードを持って、
「すみません、○○○ですが、投票された内容に関しての調査にご協力いただけますか……」
と、市役所から出てくる人に声をかけ続ける。知らぬ人に声をかけることが苦にならない性質だからよかったが、最近の学生さんには辛い仕事かもしれない。むしろ私は、脱水症状になりかけたのと首筋の日焼けの方が辛かった。
そして、思いもかけないことに出喰わしたのだ。この手の調査なので、当然拒否されることが多々あるわけなのだけど、かなりの割合の人がこう言うのだ。
「大丈夫です」
え?どういう意味?何が「大丈夫」なの?……最初は意味が分からなかった。最初にそう言った三十代男性は、きょとんとして目前に立ち竦む私に目をやって、軽く舌打ちして大きく私を避けて歩き去った。何秒かの困惑の後にようやく、ああ、これは調査を拒否しているんだ、と理解した。どうも私の知らないうちに、このフレーズは他者を拒否する文脈の表現として定着していたらしい。大体四十代位までの人が多かったが、まあ皆さんこう仰るのだ。
その場は黙って淡々と対処していたわけだが、胸の中ではとにかく不可解だという思いが充満していた。この「大丈夫」は、何をどう補完しても何が言いたいのかが分からない。おそらく彼らは皆、自分が何か拒否するときに、無難な、角の立たない表現としてこの言葉を便利に使っていて、やがてその言葉の意味を考えないようになり、今回目前に立ちはだかる私にそれをぶつけたのだろう。最初の人は、きょとんとしている私が退かないのを見て、
「なんだこいつ、ちょっと丁寧に言ってやってるのに」
と苛立ち、舌打ちしたのだろう。惰性で意味の通らない言葉を平気で使っているなどとは考えもせずに。
飲食店でもコンビニでも、その後もこのフレーズを耳にすることがあるのだが、その度に、あの舌打ちされた日のことを思い出す。ああ、そうやってカプセル化したフレーズを投げつけてるのね。それがあなたたちの本質なのね、と思いながら。いつか、こう言ってやりたい、と思いながら。
まあどうせ通じもしないんだろうが。
【後記】
東京03のネタって話は知らなかった。ということは……と思いつつ、改めて辞書をひくと、
1 あぶなげがなく安心できるさま。強くてしっかりしているさま。「地震にも大丈夫なようにできている」「食べても大丈夫ですか」「病人はもう大丈夫だ」
2 まちがいがなくて確かなさま。「時間は大丈夫ですか」「大丈夫だ、今度はうまくいくよ」
[補説]近年、形容動詞の「大丈夫」を、必要または不要、可または不可、諾または否の意で相手に問いかける、あるいは答える用法が増えている。「重そうですね、持ちましょうか」「いえ、大丈夫です(不要の意)」、「試着したいのですが大丈夫ですか」「はい、大丈夫です(可能、または承諾の意)」など。
これですか。この辞書の文例ならば、
「(持っていただかなくとも私は)大丈夫」
でも、出口調査の依頼に対して「大丈夫」というのは、何をどうしても通らないと思うのですよ。
初投稿につき至らない点があるかもしれないが容赦してほしい。が、指摘は受け入れる所存。
俺はとあるUIコンポーネントライブラリ開発者だが、先日議論されたあるコンポーネントの設計について悩み続けている。
これを読んでくれた人の設計センスや知識、経験から、第三者の率直な意見を聞きたい。
悩んでいることの概要は、
ざっくり言えばこの2択だ。
どちらも間違った考えだとは思えないので、そもそもどちらかの捉え方がおかしいのだと思う。そういった意見も聞きたいが、まずは読んでみてほしい。
設計対象のコンポーネントは、よくある触って動かせるスライダーである。下記リンク先のようなものだ。
https://material-ui.com/components/slider/
加えて、下記も前提としてほしい。
Sliderというコンポーネントクラスを作るとして、これらの構成要素をライブラリ-ユーザー間でどう分担するかという点で、AさんとBさんで意見が割れた。
それぞれの意見を要約すると下のようになる。Aさんはカプセル化を狙い、Bさんは単一責任原則を重視している。
画面 └ Slider (ユーザーが作成) ├ 背景バー ├ ノブ └ 進捗バー
Aさん案の場合だと、Sliderクラス内部で勝手にそれぞれの要素を作成し、自分の子にするなりして表示する。
画面 ├ 背景バー (ユーザーが作成) ├ ノブ (ユーザーが作成) ├ 進捗バー (ユーザーが作成) └ Slider (ユーザーが作成) ├ 背景バーへの参照 (ユーザーが指定) ├ ノブへの参照 (ユーザーが指定) └ 進捗バーへの参照 (ユーザーが指定)
Bさん案では、ユーザーが構成要素それぞれを作成し、Sliderにそれを食わせる。
SliderはAさん案のように各構成要素を構築する必要はなく、ノブの移動や進捗バーのサイズ変更だけすれば良い。
Aさんはユーザーが制御する必要のない背景バー、ノブ、進捗バーの構成を隠蔽(カプセル化)しようと提案したが、
Aさん案に対しBさんは、単一責任原則の観点から「各構成要素の構築や表示」という責任を外すべきだと訴え、Bさん案を提示した。
またBさんは、コンポーネントはユーザーが扱うべきものであり、コンポーネントがコンポーネントを内部で勝手に使用しているのは混乱を招くとの見方もしている。
ただしAさんの考えの通り、実際に各要素の構成をユーザーが制御するユースケースは存在しない。
その場では「単一責任原則」を持ち出したBさん案で決定された。
しかしなんとなくAさん案派だった俺はモヤモヤしたまま家に帰り、本当に単一責任原則に反しているのか、カプセル化よりも大事なのかと悩み続けている。
ここまでが事実となる。
さて本当にBさんが正しかったのか、あるいは単一責任原則の捉え方が間違っているのか、はたまた・・
第三者による意見が聞きたい。周りのコメントに左右されない率直な意見が望ましい。なんとなくな意見も歓迎する。
満たすべき機能は見た目だけではないがそこは置いておいてほしい。