オブジェクト指向を教えてくれ!

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2021/03/16(火) 17:06:02.41ID:VhqTt897
オブジェクト指向について、調べれば調べるほど疑問が募ります。低レベルで粗末な疑問かも知れませんが、ご教授願いたいです。

・データと振る舞いをまとめる?
まとめると何か良いことあるの?
ファイルあるいはモジュールにはまとまってるよね?
丁度いい単位があるのに、何故わざわざオブジェクトという概念を導入するの?
(Javaには1ファイル1クラスという文化あるらしいけど)

・カプセル化?
モジュールのimport, exportでも実現出来るよね?
(構造体などへのアクセスを制限できれば)

・ポリモーフィズム?
別にデータと振る舞いをまとめなくても実現出来るよね?

・モノのように扱いたい?
モノとして扱いたいときに扱えば良くない? なんでわざわざ全てをオブジェクトにするの?
2021/04/10(土) 12:13:35.99ID:soXV+Z7D
>>662
くっさ
664デフォルトの名無しさん
垢版 |
2021/04/10(土) 12:22:33.67ID:T+f9vh2x
ダイクストラの構造化プログラミングは、プログラムの大規模開発への道を開いたが、あくまで単一スレッド(single thread)計算機を前提としたトップダウン型開発方法であった。すなわち、プログラムのすべての機能は単線の計算プロセス上で実行する必要があり、たとえ甲と乙という汎用的な単機能を提供する検証済みのプログラムがそれぞれ独立に存在していても、両機能を実現するプログラムを作成するためには、ソースコードから該当機能部分を抜き出し、単線上に乗るように連接(concatenation)した上で、一つのプログラムとして正しく動作するように修正し、さらに再度検証しなければならない。

一方で、複数スレッド(multi thread)計算機においては、主プログラムから、甲と乙のプログラムなどの従プログラムをそれぞれ並列に実行させた上で、処理内容を従プログラムに(OSの機能などを仲介して)伝言受け渡し(message passing)して代わりに処理させることで、検証済みプログラムのソースコードに手を加えることなく、低コストで開発することができる(以下、これを第0世代オブジェクト指向プログラミング[独自研究?]と呼ぶ)[3]。

オーレ=ヨハン・ダールとアントニー・ホーアは、この第0世代オブジェクト指向プログラミングのような考え方の有効性を主張し[4]、上記のような一連の操作を一つの言語の中で完結させるための機構を提案した。それがクラスの構文である。

ダールとホーアは、まず主プログラムから従プログラムを並列呼び出しする際、読み込みするにあたって新たに(new)割り当てられたメモリ領域に限定して走る計算プロセスを実例(instance;インスタンス)と名付け、さらにその実例の集まり(class of instances)をそれが記述されたソースコードと同一視した。その上で、呼び出されたときだけではなく、存在し続ける従プログラムの実例のもとになる手続きをクラス(class)、その実例を(「クラスの実例」ではなく)改めてクラスの対象(object)と名付けた[5]。さらに、その考えに基づいてSimula 67にクラスの構文を実装した[6]。
665デフォルトの名無しさん
垢版 |
2021/04/10(土) 12:41:57.60ID:XPz+daq5
>>661
ならそういうお前が、プログラミング未経験者にも分かりやすく、オブジェクト指向とは何かを語れよ!!!
2021/04/10(土) 12:51:55.32ID:KeUOoB1p
>>665
プログラミング未経験者がオブジェクト指向知る意味はない
おまえ毎日何やってんの?他にすること無いの?
667デフォルトの名無しさん
垢版 |
2021/04/10(土) 13:17:44.61ID:ZJgmDpk8
よし単純に説明してみるぞ

Aさんが甲というちゃんと動作するプログラムを組みました。
Bさんは乙という同じくちゃんと動作するプログラムを組みました。
Cさんは甲の機能と乙の機能の2つを併せ持つ丙というプログラムを組むことにしました。

イチから作るのはめんどいのでCさんはAさんBさんからコードをそのままもらうことにしました。
ただ言語にクラスの機能もモジュールの機能も無いので、組み合わせるには変数名を衝突しないように変更しなければならず、条件分岐もやたら複雑になりました。

こんなときクラスの機能があれば変数名がリセットされて衝突しないのに‥
668デフォルトの名無しさん
垢版 |
2021/04/10(土) 13:19:15.79ID:ZJgmDpk8
シンプルイズベスト
どうだ!
669デフォルトの名無しさん
垢版 |
2021/04/10(土) 13:22:11.44ID:XPz+daq5
>>586
>そう考えるとチンポは自我の機能を保有していることになり

『ムスコ』は親クラスを継承し、かつ親クラスたるクリントンはその責任を負うのだぞ?

>クリントンの精液のシミがついたドレスをモニカが保管していることがわかり、

罪はチンポに責任はクリントンに、不適切な関係でした!
670デフォルトの名無しさん
垢版 |
2021/04/10(土) 13:39:43.96ID:XPz+daq5
>>667
>イチから作るのはめんどいので

反復期間ごとに現実に動作し役に立つソフトウェアを提供することで、開発サイドとビジネスサイドが
「現物のソフトウェア」を介してコミュニケーションすることが可能となります。
共に現物を触れることで、開発サイドは即座にフィードバックを受けることができます。
ビジネスサイドは現物に(文字どおり)触発され、新たな要求やアイデアが湧き立ちます。
アジャイル開発は、要求の変化へ追従するだけではなく、新しい変化を自らもたらします。
https://www.fujitsu.com/jp/group/fst/about/resources/featurestories/about-agile-01.html
671デフォルトの名無しさん
垢版 |
2021/04/10(土) 13:55:59.53ID:XPz+daq5
基本情報技術者 H27年春 午前 【問48】 分類:システム開発技術
オブジェクト指向の考え方に基づくとき、一般に"自動車"のサブクラスといえるものはどれか。
ア エンジン
イ 製造番号
ウ タイヤ
エ トラック
http://itnavi.style-mods.net/question/fe27_1/fe27_1_48.htm

625 デフォルトの名無しさん 2021/04/08(木) 15:53:22.47 ID:I7qINfxA
この車は、タイヤがパンクしてしまった!

クリントン大統領は、チンポがシコシコしてしまった!
672デフォルトの名無しさん
垢版 |
2021/04/10(土) 14:07:00.73ID:XPz+daq5
カテゴリ分別ということなら、クリントンとチンポの関係は、そのまま自動車とトラックには当てはまらない!

Carクラスには、フィールドとしてTyreオブジェクト(への参照)4つとEngineオブジェクト(への参照)
1つが定義されている。 つまり、CarオブジェクトはTyreオブジェクト4つとEngineオブジェクト1つを持つこと
になる。 これで「自動車が4つのタイヤと1つのエンジンを持っている」ということを表現できるのである。
http://www.rsch.tuis.ac.jp/~ohmi/software-intro/objectoriented.html

チンポは内部クラスにもサブクラスにも成り得るはずだ、違うか?

解答と解説
解答: エ
解説: オブジェクト指向
データを外部から隠ぺいし、メソッドと呼ばれる手続きによって間接的に操作することができる。プログラムは、データとメソッドをひとまとめにしたものの集まりである。
分類: テクノロジ系 > 開発技術 > システム開発技術
673デフォルトの名無しさん
垢版 |
2021/04/10(土) 14:25:09.38ID:XPz+daq5
オシッコするときのチンポはインナークラス、勃起・射精するときのチンポはサブクラス、けれども自動車
のサブクラスはタイヤではなくてトラック、すると俺のオブジェクト指向理解は間違っていたのか???

だとすればチンポは随意筋なのか不随意筋なのか、どっちなんだ???

オシッコするときは随意筋で、射精するときは不随意筋って、どういう筋肉なんだ???
2021/04/10(土) 14:36:31.61ID:edMGid1M
>>667
モジュールやネームスペースに相当する機能で十分なのでオブジェクト指向は必要ないねー
675デフォルトの名無しさん
垢版 |
2021/04/10(土) 14:50:02.32ID:XPz+daq5
しかしながらこういう時にチンポをクリントンのインナークラスにすると、

>>626
>人格は乗っ取られているかも知れないがそれはクリントンの状態変化であって

クリントンの『状態』をオブジェクトにしなければならなくなる。しかしながら、

>乗っ取られるという状態変化を起こしたクリントンがシコっていることに変わりはない

チンポ【が】シコシコして、シコシコしたチンポがクリントンをシコらせる、こう考えざるを得ない!

・・・・異論があるなら何なりと!

250 デフォルトの名無しさん sage 2021/03/21(日) 16:00:54.94 ID:rWfpUSZ4
状態をオブジェクトにするな
は昔からよく言われている
「ボタンを押している状態」
をクラスにしてしまうと
プログラムが無茶無茶になる
「モノ」をオブジェクトにする
これがオブジェクト指向の本質
676デフォルトの名無しさん
垢版 |
2021/04/10(土) 15:01:13.41ID:XPz+daq5
オブジェクト指向には、インナークラスとサブクラスの2種類があって、

>"自動車"のサブクラス

『トラック』は独立した自動車として振る舞えるが、『タイヤ』はそうではない!

>クリントンの精液のシミがついたドレスをモニカが保管していることがわかり、

チンポは独立した主体存在であり、かつクリントンそのものとして振る舞える!

      こ れ で 全 て の 謎 は 解 け た !
2021/04/10(土) 15:57:27.66ID:soXV+Z7D
ガイジって志村といっしょだよな
面白いの最初だけなのにくどいわ
678デフォルトの名無しさん
垢版 |
2021/04/10(土) 16:32:26.44ID:XPz+daq5
>>677
だから『オブジェクト指向』について、他にわかりやすい説明が有るのかって??
679デフォルトの名無しさん
垢版 |
2021/04/10(土) 17:18:56.68ID:GLiDRYw8
>>675
>「ボタンを押している状態」
>をクラスにしてしまうと
>プログラムが無茶無茶になる

ならないよ
というかゲーム作成では1画面書き換える前と
書き換えた後のボタンの状態をとっておいて
書き換え前と書き換え後の論理積を取ったもののビットが1ならボタン押しっぱなし、
書き換え前と書き換え後の排他的論理和に書き換え後の論理積を取ったもののビットが1の場合はボタン立ち上がり、
書き換え前と書き換え後の排他的論理和と書き換え前の論理積のビットが1だった場合はボタン立ち下がりという
シングルトンなクラスを持ってそれを見に行って各キャラクターの処理分けを行うなんて普通にあること。

何で上で書いたみたいに思っちゃったのかな?
2021/04/10(土) 18:35:00.78ID:edMGid1M
>>679
それ「ボタンを押してる状態」をクラスにしてる?
681デフォルトの名無しさん
垢版 |
2021/04/10(土) 18:52:25.48ID:GLiDRYw8
>>680
そうだよ
これはあくまでベースで
更に格闘ゲームなんかだと
コマンド入力クラスの中で
これを使っている場合もある
2021/04/10(土) 20:07:30.85ID:hfLklo2F
テクニックで
オブジェクト指向と関係ない
683デフォルトの名無しさん
垢版 |
2021/04/10(土) 20:21:03.66ID:XPz+daq5
>>682
ならばオブジェクト指向とチンポ【が】シコシコとは、関係無いのか?
2021/04/10(土) 20:47:28.50ID:edMGid1M
>>681
何がそうなのかよく分からない
>>679を読む限りではボタンの各状態をそれぞれクラスとして定義してるようには全く見えないんだけど?

書き換え前と書き換え後のボタンの状態を表現する各インスタンスをオペランドとして論理演算してるってことなの?

もしそうだとしたら何のためにボタンの各状態をわざわざクラスとして定義するのかわからない
stateパターン使って状態遷移を制御するんなら理解できるんだけど
685デフォルトの名無しさん
垢版 |
2021/04/10(土) 21:06:31.28ID:GLiDRYw8
>>684
なんかここまで説明して分からない人にこれ以上説明するのは無駄な気がする
Object指向以前にコンピュータとはどういうものかもっと基礎的なことから勉強した方がいいと思う
恐らく掛け算のロジックを作れと言われたらそのまま掛けられる数の回数分だけ掛ける数をループして
足しこむようなロジックを作るタイプだな
2021/04/10(土) 21:34:26.26ID:edMGid1M
「ボタンを押している状態をクラスにしてしまうとプログラムが無茶無茶になる」という主張に対する反論に
「ボタンを押している状態」をクラスにしてない例を持ってきても意味なくないかい?

何か意図があったのだろうか?
687デフォルトの名無しさん
垢版 |
2021/04/10(土) 21:42:44.90ID:GLiDRYw8
>>686
何を言ってるのか全く分からんけど
>>679はれっきとしたボタンが押されているか、今押されたのか、ボタンを離したのかの状態を監視するクラスだ。
それが読んで分からない人にそこから先の何が理解出来る?
2021/04/10(土) 21:44:59.07ID:AcLZ31++
ゲームみたいな例外をだしたって参考にならないんだがな
ゲームのボタンは押したらロボットに変形したりする
2021/04/10(土) 21:48:22.34ID:hfLklo2F
仮想コントローラークラスにして
コントローラオブジェクトとして扱ってるってことか
690デフォルトの名無しさん
垢版 |
2021/04/10(土) 21:52:03.15ID:GLiDRYw8
>>688
別にゲームのボタンでなくてもいいよ
スマホとかのタブレットデバイスで
スライドするとそれに合わせてスクロール
したりするのも原理的には同じだ
2021/04/10(土) 21:58:30.06ID:AcLZ31++
>>690
スマホとかの〜ボタンだと
そういうのは予め用意されてる
何のフレームワーク・ライブラリの話をしてる?
692デフォルトの名無しさん
垢版 |
2021/04/10(土) 22:05:19.22ID:4ha6UGTx
>>691
そうだな
例えばスクロールする枠とスクロールを検知する枠が異なる場合、
通常のフレームワークだとそこまでやってくれない場合がある。
例えばWeb画面だと本来CSSだけでそれは出来ることだが
上記のような条件がつく場合、>>691だったらどうするよ?
693デフォルトの名無しさん
垢版 |
2021/04/10(土) 22:08:38.99ID:bj32NwrN
さあさあ議論が白熱して参りました!
694デフォルトの名無しさん
垢版 |
2021/04/10(土) 22:11:15.49ID:XPz+daq5
さあさあ皆さん、チンポ【が】シコシコして参りました!
2021/04/10(土) 22:40:41.01ID:CMXyYVkE
チンポがシコシコ君はいい加減に消えて欲しいが
「〜が」の時点で主語(サブジェクト)だから、それはサブジェクト指向やぞ
2021/04/10(土) 22:46:33.74ID:GpjuDdyG
static変数を持つクラスを作ると
そのクラスに依存するクラスがたくさんできる
プロジェクト内で完結してるなら問題ない
そのかわり次のプロジェクトで使えないようなクラスが
たくさん残る
そういうことじゃ
2021/04/10(土) 23:07:58.78ID:d/QnIuGg
privateにすりゃいいんじゃ
698デフォルトの名無しさん
垢版 |
2021/04/10(土) 23:38:19.35ID:GLiDRYw8
>>696
いつものじーさんか
んー、上のボタン制御のロジックに限って言ってしまうとボタン情報による状態変化を司るクラスを作っておいて
それだけ変えればいいように設計すればそこの変更だけで済むんだけど
Object指向のスレ的に言えば本来、開放閉鎖原則というのがあるからそれに関しては否定しないよ。
2021/04/11(日) 04:40:53.16ID:CjAFb9gH
>>692
そういうのを作ればいいだけでは?
それとゲームのボタンとは全く違う
700デフォルトの名無しさん
垢版 |
2021/04/11(日) 06:22:47.87ID:0+LhiyyI
>>699
>そういうのを作ればいいだけでは?
>それとゲームのボタンとは全く違う

そういうのをどう作るのか聞いている
そこに行き着く前に思考停止しているから
原理が同じことに気付けない
2021/04/11(日) 07:11:59.27ID:CjAFb9gH
>>700
だから既存のものはどうなってるかって聞いたんだよ
どれもゲームのようにはなってないだろ?

YAGNIって知ってるか?出来るかどうかの話はしてない。
必要ないのに無駄な汎用性をもたせるなという話
それともゲーム並みに無駄な汎用性をもたせるといい理由でもあるか?
2021/04/11(日) 07:12:30.62ID:CjAFb9gH
ゲームが必要だから、それ以外でもゲームと同じようにするべき

という考えなら、それこそ思考停止
703デフォルトの名無しさん
垢版 |
2021/04/11(日) 07:14:37.55ID:0+LhiyyI
後輩「先輩」
先輩「何だ後輩」
後輩「すみません、画面スライドしたとき、スクロール範囲でないところでスクロールを検知させたいんですけど」
先輩「それで?」
後輩「CSSじゃ出来なそうなんです。どうすればいいですかね」
先輩「そう作ればいいだろ」

こんな感じで笑えたわw
流石に上司や客先にはやったらクビになるから
今度後輩にやってみよう
2021/04/11(日) 07:19:58.71ID:CjAFb9gH
後輩「先輩」
先輩「何だ後輩」
後輩「すみません、画面スライドしたとき、スクロール範囲でないところでスクロールを検知させたいんですけど」
先輩「それなら全画面を透明のCSSで覆えばいいよ」

こんな話か?w
705デフォルトの名無しさん
垢版 |
2021/04/11(日) 07:20:56.91ID:0+LhiyyI
>>702
この話においてゲームの話はただのトリガーで
「ゲームのような特殊な」って言うから
比較的一般のものの話をしているんで
そんな心配しなくていいよ。

で、どう作るのかまだ回答を貰っていないんだが
どうすんの?コレ
2021/04/11(日) 07:21:24.67ID:CjAFb9gH
あれだな。見えているもがオブジェクト全てだと考えてしまうゲーム脳だなw
2021/04/11(日) 07:22:43.08ID:CjAFb9gH
>>705
スクロールする枠と、スクロールを検知する枠を別にすればいいだけ
それとボタンを押した状態を別のオブジェクトにする話と何が関係あるんだ?
708デフォルトの名無しさん
垢版 |
2021/04/11(日) 07:24:12.88ID:0+LhiyyI
後輩「先輩」
先輩「なんだ後輩」
後輩「なんか画面がスクロールしなくなっちゃったんですけど」
先輩「いいから、出来るように作ればいいんだよ!!」
こんな感じ
2021/04/11(日) 07:25:51.39ID:CjAFb9gH
後輩「○○で作れそうじゃないんですけど。どうすればいいですかね」
↑相談

先輩「そう作ればいいだろ」
↑無能

こういうのが報連相をぶち壊しにするんだよな
後輩が相談してるのに、その相談にのらない
2021/04/11(日) 07:27:33.86ID:CjAFb9gH
それでボタンを押した状態というのは
どれも状態としてボタンが持ってるのが普通なのに
なんでわざわざ別のオブジェクトにするんですか?
まだ答えもらってないよ
2021/04/11(日) 07:34:09.10ID:CjAFb9gH
答えに詰まったようだねw

ゲームのボタンっていうのはキャラクターの一種なんだわ
例えばマリオだとPスイッチは、押したら潰れて消える
持って投げられる。ベルトコンベアやバネの上で動く。
壁として障害物になる。

そういうのとUIのボタンを一緒にするのは抽象化能力が低い
ボタンという名前だから同じものだと考えてしまっている
ゲームのボタン(キャラクター)を持ち出して
UIまでキャラクターにするのはアホ
712デフォルトの名無しさん
垢版 |
2021/04/11(日) 07:35:04.81ID:0+LhiyyI
>>710
え?何?そこから?
なら画面が動いている最中に
ボタンが押されたばかりか離されたか
押しっぱなしか押してないかどう検知するんだよ?
まさかボタンのイベント括り付けて常に拾うつもり?
2021/04/11(日) 07:40:36.11ID:CjAFb9gH
>>712
常にイベント拾う必要ないだろ

ボタンが押された・・・onPressイベント
押しっぱなし・・・そのまま何もイベントが発生しない
ボタンが話された・・・onReleaseイベント

こんなとこだろ
2021/04/11(日) 07:42:16.08ID:CjAFb9gH
そもそもフレーム単位で描画処理するというのがゲームの発想なわけで
普通のUIはそんなことはしない。
やっぱり理解できてないとしか言うしかないな
マジのゲーム脳だなw
715デフォルトの名無しさん
垢版 |
2021/04/11(日) 07:44:03.37ID:0+LhiyyI
>>711
>ゲームのボタンっていうのはキャラクターの一種なんだわ

ちょっと何言ってるか分かりませんね
十字キーやABボタンがキャラクター?
あれって勝手に外れて動き出すの?
・・・狂った?

>>714
>そもそもフレーム単位で描画処理するというのがゲームの発想なわけで

お前、スマホとかの開発出来ねーな
2021/04/11(日) 07:47:15.00ID:CjAFb9gH
>>715
十字キーやABボタンの話をしてたのか?
それもう現実世界のもので
ソフトウェアのオブジェクトじゃないじゃん
お前何言ってるの?

それに「オブジェクトを押した状態」をクラスにするのが
アホ設計って話をしてるよね
つまり、お前のABボタンは、押すと別のオブジェクトに変わるんか?

>>715
> お前、スマホとかの開発出来ねーな

やっぱり反論できなくなったら遠吠え DA・YO・NE☆
717デフォルトの名無しさん
垢版 |
2021/04/11(日) 07:57:06.87ID:0+LhiyyI
>>716
いいか?
ボタンをクラスにするのではない
「ボタンの状況」を把握するクラスを作ること
それが最初から言われている大条件だが
日本語苦手なのかな?

で、俺はスマホでスクロールの話をしたとき
お前は「原理は全く別のもの」と吹っかけた
では原理的に何がどう違うのか説明して貰おう
否定すると言うことは当然理解もしているし
こうだから違うと言うことを自分が
理解していて説明出来るからという解釈でいいんだよな?
2021/04/11(日) 08:13:48.85ID:CjAFb9gH
>>717
話をすり替えるな

>>675
>「ボタンを押している状態」
>をクラスにしてしまうと
>プログラムが無茶無茶になる
2021/04/11(日) 08:14:43.87ID:CjAFb9gH
680 名前:デフォルトの名無しさん[sage] 投稿日:2021/04/10(土) 18:35:00.78 ID:edMGid1M [2/4]
>>679
それ「ボタンを押してる状態」をクラスにしてる?

681 名前:デフォルトの名無しさん[] 投稿日:2021/04/10(土) 18:52:25.48 ID:GLiDRYw8 [2/6]
>>680
そうだよ
2021/04/11(日) 08:18:42.29ID:CjAFb9gH
「ボタンの状況」を把握するクラスっていうのも意味不明なんだよな
イベントドリブンをしらないのか?
ボタンは状況が変わればそれをイベントとして通知する
それはハードウェアやドライバレベルで処理する話なの

いちいちフレーム単位でボタンの状況を
スキャンしたりしないの
721デフォルトの名無しさん
垢版 |
2021/04/11(日) 08:19:04.30ID:0+LhiyyI
>>718
何もすり替えていない。
「ボタンを押している状態」のクラスを作ることだろ?
ボタンが別のオブジェクトになるとか
さっきから何の話をしているんだ?

俺からするとお前の方が回答したくなくて
話を逸らしているように見えるんだが?
なぁ、早く答えてくれよ
2021/04/11(日) 08:22:01.88ID:CjAFb9gH
> 「ボタンを押している状態」をクラスにする

> 「ボタンの状況」を把握するクラスを作ること


この2つが区別つかないようじゃ話にならんなw
723デフォルトの名無しさん
垢版 |
2021/04/11(日) 08:25:38.30ID:0+LhiyyI
>>722
「ボタンの押している状態」
「ボタンの押している状況」
「ボタンの状況」
俺からすれば言葉遊びのように見えるが
では何がどう違うのか説明してくれ
2021/04/11(日) 08:28:12.36ID:CjAFb9gH
> 「ボタンを押している状態」をクラス
ButtonPressedClass

> 「ボタンの状況」を把握するクラスを作ること
ButtonStateScannerClass

ぜんぜん違うだろ
725デフォルトの名無しさん
垢版 |
2021/04/11(日) 08:36:11.20ID:0+LhiyyI
>>724
馬鹿か?
ボタンのイベント処理そのものをクラスにするなんて常識としてあり得ないだろ?
そういう言葉遊びはもう沢山だから
キチンとボタンの状態を管理する話から話を逸らすなよ。
で、スクロールの件は?早く答えてくれよ。
2021/04/11(日) 08:37:59.54ID:CjAFb9gH
> ボタンのイベント処理そのものをクラスにするなんて常識としてあり得ないだろ?
誰もそんな話はしてない
どこをみて「ボタンのイベント処理そのものをクラス」と
書いてあると思ったのか?

そして>>724へのレスはなし。
都合の悪いレスは無視して違う話を始めるw
727デフォルトの名無しさん
垢版 |
2021/04/11(日) 08:45:17.73ID:0+LhiyyI
>>726
>>724ぬ対してのレスは見えなかったことになってるのか
ButtonPressedClassって
どう見てもボタン押下しましたクラスだが
それはボタンを押下したイベントを司るクラスでないなら何のクラスなんだ?
こっちからしてみるとそっちの言ってることはさっきから支離滅裂なことにしか見えないんだが?
2021/04/11(日) 08:50:34.59ID:CjAFb9gH
> どう見てもボタン押下しましたクラスだが
> それはボタンを押下したイベントを司るクラスでないなら何のクラスなんだ?

ボタンが押された状態のクラスだろ
なんでもう押されてしまった状態なのに
ボタンを押すイベントを司らなければならないのか
ボタンを押すイベントが発生した後のクラスだろうに
はぁ英語も通じないのか・・・
729デフォルトの名無しさん
垢版 |
2021/04/11(日) 08:56:03.31ID:0+LhiyyI
>>728
そのボタンが押された後に発生したクラスで何をやっているのか?
押された後の状態管理で有れば>>724で言っている下のクラスとは何が違うのか?
730デフォルトの名無しさん
垢版 |
2021/04/11(日) 08:59:35.24ID:7+Z1QVDQ
チンポという主体意思決定存在(サブジェクト)を、オブジェクト指向で表現するということなんだが?

>>695
>「〜が」の時点で主語(サブジェクト)だから、それはサブジェクト指向やぞ

カンタンに表記すれば、
Subject = 法則,
Object = (法則によって規定される)集団
になるんでしょう。
これをコンピュータのプログラミングに当てはめると、
Subject = コンピュータの処理方法,
Object = プログラマが設定可能な部分
になるんではないかと。
https://note.com/nephews_tech/n/n02380a2cc0e3
2021/04/11(日) 09:01:34.10ID:CjAFb9gH
>>729
> そのボタンが押された後に発生したクラスで何をやっているのか?

>>716より
> それに「オブジェクトを押した状態」をクラスにするのが
> アホ設計って話をしてるよね

「ボタンが押された後に発生したクラス」なんてのを
作るのがアホと言ってる俺に聞くなアホ
2021/04/11(日) 09:03:59.94ID:CjAFb9gH
> >>724で言っている下のクラスとは何が違うのか?

それはお前が「ボタンを押してる状態のクラス」と聞いて
「ボタンの押してる状態を把握するを把握するクラス」と勘違いしたものだろ
お前が想像で作り出したものなんか知らんわ
733デフォルトの名無しさん
垢版 |
2021/04/11(日) 09:07:23.17ID:7+Z1QVDQ
>>718
ここで話を本質に戻すと、もしチンポをクリントンのインナークラスとして固定してしまうと、

>>626
>人格は乗っ取られているかも知れないがそれはクリントンの状態変化であって

『チンポに人格を乗っ取られた【状態】のクリントン』を【再定義】【継承】が不可欠ということだ!
734デフォルトの名無しさん
垢版 |
2021/04/11(日) 09:07:31.72ID:0+LhiyyI
>>731
なんだ結局>>724で言ってたものの上下は
言葉を変えただけの言葉遊びか
735デフォルトの名無しさん
垢版 |
2021/04/11(日) 09:10:06.68ID:0+LhiyyI
>>732
まぁいいや何が言いたかったかは大体分かった。
後はスクロールの件だけ答えてくれればいいや。
2021/04/11(日) 09:10:12.49ID:CjAFb9gH
>>734
どこを読んで言葉遊びだと思ったの?
全く違うものであるといったよね?

「どこを読んで同じものだと思ったの?」
次のレスはそれだけ言えばいいよw
2021/04/11(日) 09:10:32.38ID:CjAFb9gH
> 後はスクロールの件だけ答えてくれればいいや。
すでに返答済み
738デフォルトの名無しさん
垢版 |
2021/04/11(日) 09:15:12.83ID:0+LhiyyI
>>736
結局ボタンを押した後に行うのは
それに対しどう状況が変化するのか
管理するものへの設定だけだろ?
名前が違うだけでやることは同じだからな
だから言葉遊びと言ったんだ。

>既に回答済み
ああ、あの「そのように作ればいい」ってやつね。
はいはい
739デフォルトの名無しさん
垢版 |
2021/04/11(日) 09:25:57.00ID:7+Z1QVDQ
オブジェクトの更新処理
一般にゲームは、時間の経過とともに状態が変化します。
その時間経過による状態の更新を、BattleクラスのUpdate()メソッドで処理することとします。
そして、BattleクラスのUpdate()の中で、各BattleObjectのUpdate()を呼びます。
https://developer.aiming-inc.com/programming/design-battle-program/
740デフォルトの名無しさん
垢版 |
2021/04/11(日) 09:34:53.14ID:7+Z1QVDQ
バトル通信ラグ軽減のための「武器持ち替え廃止論」コメント 1件

アイミョン
[KS108-054]
テーマ:バトル2020/09/20 15:47
https://hiroba.dqx.jp/sc/forum/pastthread/413734/

>現在できている操作ができなくなってしまう可能性もあるため

武器持ち替えは操作が無駄に多くなるし行動ターンを浪費するので、無くしてしまっても問題無いと思います。

https://i.imgur.com/U4jgmc3.png
741デフォルトの名無しさん
垢版 |
2021/04/11(日) 09:45:39.75ID:0+LhiyyI
>>739
お、いつもチンポチンポ言ってるけど
こういうのの反応は早いのね。
ちょっと見直したよ。

ちょっとC++は忘れたけど時間経過と言うか
確か走査線が一画面分走ったときに起る
VSYNC割込みが使えたんじゃなかったかなー
まぁその辺の単位で処理しているのは違いないよ
ネットでの他者との同期は俺もそこまで詳しくないけど
他のPCとの同期は2台だけでもかなりややこしかったからね
後で色々起きるのも理解出来るよ。
742デフォルトの名無しさん
垢版 |
2021/04/11(日) 09:53:24.21ID:7+Z1QVDQ
状態変化といっても、オシッコするときのチンポはインナークラス、勃起・射精するときのチンポはサブクラス。

>BattleクラスのUpdate()メソッドで処理することとします。

オンラインゲームのバトルはごくシンプルに、同一人格の状態変化はインナークラスが良い。

928 デフォルトの名無しさん 2018/11/21(水) 18:59:11.61 ID:8Yc2p7H1
>>922
>ナンチャッテメッセージングスタイルになったのは

チンポ.オシッコを出す
チンポ.オシッコを止める

さっきトイレでやってきた。


929 デフォルトの名無しさん 2018/11/21(水) 19:07:17.83 ID:8Yc2p7H1
>>915
>単なる動的なメソッド呼び出しをメッセージと称し、ただしコールするメソッドが見つからない場合だけメッセージを
>ハンドリングできる省コストなナンチャッテメッセージングスタイルに落ち着いた。

×
俺.オシッコを止める 俺.オシッコを出す

俺.チンポに力を入れる 俺.チンポから力を抜く
2021/04/11(日) 09:56:07.22ID:dlO5vcSm
君たち日曜の朝からなにやってんのwww

>>687
とりあえず「状態をクラスにする」の意味が分かってないことは良くわかった
誰も問題にしてないことに対して頑張って反論してたわけね
744デフォルトの名無しさん
垢版 |
2021/04/11(日) 10:14:46.71ID:0+LhiyyI
>>743
まぁお前はその入口にすら立てていないことも解ったけどな
2021/04/11(日) 10:20:51.36ID:dlO5vcSm
>スクロールする枠とスクロールを検知する枠が異なる場合

検知するというのがスクロールイベント自体を作成することを言ってるのか
それともスクロールイベントをハンドリングすることを言ってるのかわからないな

前者ならスクロールされた枠がスクロールイベントを発行すればいいだけなのに
別のところでスクロールされた枠用のイベントを発行する意味がわからない
後者ならごく一般的なことなので何を問題にしてるかがわからない

とかいっても無駄かな
746デフォルトの名無しさん
垢版 |
2021/04/11(日) 10:29:15.53ID:0+LhiyyI
>>745
というかお前はまずスマホのタッチとかスライドとかどうなってんのとか、
昨日も言ったけどコンピュータとは何か、から勉強しような。
自分の後輩なら手取り足取り教えるけど
スクロールイベントがどうのなんて言ってる時点で本質が全く見えていないのミエミエだから
747デフォルトの名無しさん
垢版 |
2021/04/11(日) 10:32:01.65ID:0+LhiyyI
話続きだったな
自分の後輩なら手取り足取り教えるけど
そんな義理は全くないから。
ましてや質問者じゃなくて教える立場として
このスレに来ているなら尚更。
748デフォルトの名無しさん
垢版 |
2021/04/11(日) 11:17:29.99ID:7+Z1QVDQ
ボタンが押されたか離されたかってのはともかく、

>>712
>なら画面が動いている最中に
>ボタンが押されたばかりか離されたか
押しっぱなしか押してないかどう検知するんだよ?

オンラインゲームでバトルキャラが死んだか否かってことでの『死亡ラグ』は珍しく無いぞ?

他のプレイヤー視点では既に倒れている。しかし、遅れているので自分では分からないためいきなり何も
ないところで死ぬ。また、デスマッチなどでは既に死んでいるため、自分が動けてもリスポンされていたり
して無敵時間が無くなり、復活した瞬間に倒されることもある。
自分がいつ死んでいるのか分からず突然死んで突然画面が切り替わってしまう。その結果キルログを注視してしまいゲームを楽しめなくなってくる。
https://gamingpcs.jp/knowledge/kankyou/kaisenhuguai/
749デフォルトの名無しさん
垢版 |
2021/04/11(日) 11:37:53.31ID:7+Z1QVDQ
オシッコを出している状態と、オシッコを止めている状態、インナークラスのメッセージング処理だなw

724 デフォルトの名無しさん sage 2021/04/11(日) 08:28:12.36 ID:CjAFb9gH
> 「ボタンを押している状態」をクラス
ButtonPressedClass

> 「ボタンの状況」を把握するクラスを作ること
ButtonStateScannerClass

ぜんぜん違うだろ

250 デフォルトの名無しさん sage 2021/03/21(日) 16:00:54.94 ID:rWfpUSZ4
状態をオブジェクトにするな
は昔からよく言われている
「ボタンを押している状態」
をクラスにしてしまうと
プログラムが無茶無茶になる
「モノ」をオブジェクトにする
これがオブジェクト指向の本質
750デフォルトの名無しさん
垢版 |
2021/04/11(日) 11:47:01.37ID:7+Z1QVDQ
さっきトイレでオシッコを出したり止めたりしていたが、

>オンラインゲームでバトルキャラが死んだか否かってことでの『死亡ラグ』は珍しく無いぞ?

オシッコを出したり止めたりするのに、脳とチンポで『通信ラグ』を感じたのは、自分だけたろうか???
751デフォルトの名無しさん
垢版 |
2021/04/11(日) 12:31:55.97ID:7+Z1QVDQ
インナークラスを用いたメッセージングによる状態操作、イベントドリブンによる割り込み処理と通信ラグ、
それはトイレでオシッコを出したり止めたりして、脳とチンポで必ずしも『同期』が取れるかという問題だ。

728 デフォルトの名無しさん sage 2021/04/11(日) 08:50:34.59 ID:CjAFb9gH
> どう見てもボタン押下しましたクラスだが
> それはボタンを押下したイベントを司るクラスでないなら何のクラスなんだ?

ボタンが押された状態のクラスだろ
なんでもう押されてしまった状態なのに
ボタンを押すイベントを司らなければならないのか
ボタンを押すイベントが発生した後のクラスだろうに
はぁ英語も通じないのか・・・
752デフォルトの名無しさん
垢版 |
2021/04/11(日) 12:42:55.74ID:7+Z1QVDQ
プログラミング言語の性能差
主な言語とスループット
言語 スループット 特性 C/C++ 100 静的言語 ネイティブコード Java 1〜10 静的言語 VM バイトコード Ruby/Python 0.1〜1 動的言語
オンラインゲームのサーバではC/C++が最も使われる
http://www.wata-lab.meijo-u.ac.jp/file/seminar/2013/2013-Semi1-Atsushi_Somekawa.pdf

オンラインゲームでは『メッセージング』なんて当たり前なのに、いつの時代の話をしているのかな?

701 デフォルトの名無しさん sage 2021/04/11(日) 07:11:59.27 ID:CjAFb9gH
>>700
だから既存のものはどうなってるかって聞いたんだよ
どれもゲームのようにはなってないだろ?

YAGNIって知ってるか?出来るかどうかの話はしてない。
必要ないのに無駄な汎用性をもたせるなという話
それともゲーム並みに無駄な汎用性をもたせるといい理由でもあるか?
753デフォルトの名無しさん
垢版 |
2021/04/11(日) 13:13:51.27ID:7+Z1QVDQ
オブジェクト指向には、大きく分けて2種類ある。

1 インナークラス(オシッコをするときのチンポ)
ネットワーク、メッセージング、イベントドリブン、同期処理・・・
2 サブクラス(勃起・射精するときのチンポ)
自然言語処理、人工知能・・・

世界初のパーソナルコンピュータであるApple Iと、キーボードやメモリ、CPU、画像出力装置、外部記憶装置、
音声出力装置とのインターフェース、プログラム言語などのオールインワンパッケージ化を可能にした
最初のコンピュータであるApple IIの開発を1人で成し遂げたのもスティーブ・ウォズニアックです。
https://engineer-shukatu.jp/column/archives/26603


インターネットも人工知能も無い1980年代のプログラミングは、いかにメモリを節約するかということだった。
演算処理をいかに早く正確に行うかが全てであって、オブジェクト指向がどうこうという議論は無かったはずだ。
近年のオブジェクト指向を意識したシステム開発は、インターネットと人工知能が背景にあり、従って、
チンポ【が】シコシコするという、新しい言語パラダイムが求められているということだ。
2021/04/11(日) 16:03:38.54ID:CjAFb9gH
>>748
> 押しっぱなしか押してないかどう検知するんだよ?
>
> オンラインゲームでバトルキャラが死んだか否かってことでの『死亡ラグ』は珍しく無いぞ?

だからお前はゲーム脳(ゲームの設計しか知らない)だと言ってる
フレーム単位でボタンの状態をスキャンするなんてことは
普通のアプリではしないんだよ

そもそもな、フレーム(1/60)ごとに発生するイベントが存在しない
お前は1/60ごとに描画しなきゃならないと思ってるんだろうが、そんなことをするのはゲームだけ

普通は何もイベントが発生しない限り変化がない
ボタンは押したときと離したときにイベントが発生する
それに応じて処理をするのがイベントドリブン

押しっぱなしは普通キーリピートとして、何度も押したというイベントが発生するのが普通のUI
それじゃゲームには役に立たない!っていいたいんだろう?ゲーム脳だからゲームに役に立たない!としか言わんわけだ

普通のUIで押しっぱなしの状態で何かを変化させる必要があれば
そのときにタイマーイベントを設置する。
ゲーム脳のお前は、このタイマーイベントがあるという前提でしか物事を考えられないんだろうが
普通のUIじゃそんなの追加機能だ

そして押しっぱなしの状態を検知したいんだったな?
ボタンオブジェクトは自身に押されたか押されてないかの状態を示すステータスフラグを持ってる
(なければそういうステータスフラグを作って、ボタンが押された・離されたときにフラグを更新するだけ)
そしてタイマーイベントからそのステータスを見るだけだ
755デフォルトの名無しさん
垢版 |
2021/04/11(日) 18:21:34.08ID:AX7XCaAp
>>710
むかーし、スマートフォンアプリ(Java/Objective-Cベース)開発初期に
ケータイやWebアプリ(flashベース)の人が来て質問してきた時に
スマホ側は「ボタン自体がタッチイベントなどの属性持ってる」前提で話してるのに
ケータイflashの人が「画面へのタッチをトリガーに
if文で矩型の範囲設定してどこを触ったか?で条件分岐させよう」としてて
噛み合わなさに苦笑したの思い出した。
2021/04/11(日) 21:18:16.23ID:LXnW0jT4
高橋名人だっけ?
1秒間に、18回クリックできた人

確か、これがこの当時の限界のはず
757デフォルトの名無しさん
垢版 |
2021/04/12(月) 08:31:37.55ID:A3OoULtt
>>754
つまり君の言い分はこうだ
「ぼくのさいきょうのおぶじぇくとしこう(ただしげーむやすまほではつかえません)」

つまり時間による状態変化にはついて行けないということだ。
別にタイマーみてボタン押下のイベントを見るのは構わないが、ひと処理がタイマー期間に間に合わず、次の期間にもなだれこむ場合、
ひとつの処理の中で複数回のボタン読み込み処理が発生する場合があり、それだけだと正確なボタン検知が出来なくなるし
それ用の処理をそのために作るのも大変だしな
作るとしてもそれを含めて
結局正しいボタン情報を監視、制御するクラスはそういう役割として持たせておくと楽だろう

それとあの後一生懸命勉強したのだろうが、フレーム(1/60秒)と書いてあるがfpsという言葉を知っているか?
身に付けたばかりの知識はひけらかすと恥をかくから気をつけた方がいいぞ

後、プログラマーのゲーム脳というのは
少なくとも君の語る最強のオブジェクト指向のようなカタワではないから褒め言葉として受け止めておくよ

それと人が居なくなった頃を見計らって書き込むのはいいが、
いくら俺が怖いからって他の誰かれ構わす他噛みつくのはみっともないな
後でチンポさんに謝っておけよ
2021/04/12(月) 09:11:21.50ID:yZXPyOt1
>>757
> 別にタイマーみてボタン押下のイベントを見るのは構わないが、ひと処理がタイマー期間に間に合わず、次の期間にもなだれこむ場合、
コマ落ちでもすりゃいいじゃん。なにか問題でも?

やっぱりゲームのことしか考えてないよね
759デフォルトの名無しさん
垢版 |
2021/04/12(月) 09:13:33.97ID:A3OoULtt
あ、カタワ指向君ちーっす
2021/04/12(月) 09:15:25.81ID:yZXPyOt1
>>757
お前はイベントドリブンっていうのを知ったほうがいいよ
今の主流の開発手法。ブラウザなんかもイベントドリブンで処理する

マウスクリック、キーボード入力、タッチ、などなど
それぞれのイベントが発生し、そのイベントの中で処理を行う
それらのイベントが発生しない間に、常にボタンを監視するなんてことはしない
761デフォルトの名無しさん
垢版 |
2021/04/12(月) 09:17:10.71ID:AGjFdU+p
???

>>754
>押しっぱなしは普通キーリピートとして、何度も押したというイベントが発生するのが普通のUI

756 デフォルトの名無しさん sage 2021/04/11(日) 21:18:16.23 ID:LXnW0jT4
高橋名人だっけ?
1秒間に、18回クリックできた人

確か、これがこの当時の限界のはず
2021/04/12(月) 09:17:17.08ID:yZXPyOt1
イベントドリブンは省エネ
メインループをずっと繰り返すというのはアンチパターン
特にスマホなんかだと、そんな事するとあっという間にバッテリーが無くなる
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも