前スレ
オブジェクト指向システムの設計 172
http://mevius.2ch.net/test/read.cgi/tech/1467992113
オブジェクト指向システムの設計 173
http://mevius.2ch.net/test/read.cgi/tech/1502182334/
類似スレ
手続き型システムの設計 1
http://mevius.2ch.net/test/read.cgi/tech/1500282714
オブジェクト指向システムの設計 174 [無断転載禁止]©2ch.net
レス数が900を超えています。1000を超えると表示できなくなるよ。
2017/09/26(火) 07:20:38.98ID:qu+DPehL
813デフォルトの名無しさん
2017/11/04(土) 12:16:47.10ID:gO0rp64l Math.Round(16 / 10) * 10
814デフォルトの名無しさん
2017/11/04(土) 12:19:19.48ID:fdoXNWBH 8進数の20は10進数の16
すなわち、20=16、とな
すなわち、20=16、とな
815デフォルトの名無しさん
2017/11/04(土) 12:25:24.71ID:2EHXQrQJ >>814
天才
天才
816デフォルトの名無しさん
2017/11/04(土) 12:33:11.68ID:ENl7xTTM >>814
なら020って書かなきゃね
なら020って書かなきゃね
817デフォルトの名無しさん
2017/11/04(土) 12:51:55.25ID:zD8APvjd ヒント:8進数。
818デフォルトの名無しさん
2017/11/05(日) 19:58:02.68ID:B4RjlPFm VBとCOBOLはいまさら覚えたくねえなぁ
C系と記述が違うのに先進性は無いとか鬱になる
C系と記述が違うのに先進性は無いとか鬱になる
819デフォルトの名無しさん
2017/11/05(日) 22:07:38.20ID:CePAYm1Z 嫌なら使うな
820デフォルトの名無しさん
2017/11/06(月) 03:30:04.80ID:2Q/sT7xS ヤフーブログの https://blogs.yahoo.co.jp/kamyu_2010 にデザパタ解説を発見した。
821デフォルトの名無しさん
2017/11/06(月) 03:38:11.03ID:tjV5ukzM 分かりにくい解説だな
マルチポストする前に文章を見直せ
マルチポストする前に文章を見直せ
822デフォルトの名無しさん
2017/11/06(月) 06:54:06.00ID:+zcozLzP これはひどい
823デフォルトの名無しさん
2017/11/08(水) 23:53:37.92ID:lvw6xF65 >>820
デザパタじゃなくてデザインパターンな
デザパタじゃなくてデザインパターンな
824デフォルトの名無しさん
2017/11/10(金) 07:29:56.57ID:wtQgej54 >>823
ペチパーやドザーみたいな愛称だろアスペか
ペチパーやドザーみたいな愛称だろアスペか
825デフォルトの名無しさん
2017/11/10(金) 19:33:33.06ID:i2VZEM66 >>824
アスペじゃなくてアスペルガー症候群な
アスペじゃなくてアスペルガー症候群な
826デフォルトの名無しさん
2017/11/10(金) 22:43:26.83ID:Mfymh77r >>825
文脈的に、アスペルガー症候群じゃなくてアスペルガー症候群患者な
文脈的に、アスペルガー症候群じゃなくてアスペルガー症候群患者な
827デフォルトの名無しさん
2017/11/10(金) 22:53:19.54ID:hftGMpVC >>825-826
これがアスペルガー症候群患者なんだな
これがアスペルガー症候群患者なんだな
828デフォルトの名無しさん
2017/11/10(金) 22:57:56.01ID:7i6+bCDW >>827
ガチアスペルガー症候群患者乙
ガチアスペルガー症候群患者乙
829デフォルトの名無しさん
2017/11/10(金) 23:30:07.23ID:Ww/tyRwt どうやったらこんなつまんないレスを返せるんだよ...
重症やな w
重症やな w
830デフォルトの名無しさん
2017/11/10(金) 23:31:12.69ID:8c9+Jy54 どうやったらこんなつまんないレスを返せるんだよ...
重症やな w
重症やな w
831デフォルトの名無しさん
2017/11/10(金) 23:34:23.55ID:x9Tf8I1u832デフォルトの名無しさん
2017/11/10(金) 23:43:05.04ID:hftGMpVC ガチとか低能過ぎるやろ
834デフォルトの名無しさん
2017/11/11(土) 00:30:35.12ID:lcuwgMKR ガチじゃなくてガチンコな
835デフォルトの名無しさん
2017/11/11(土) 00:42:07.97ID:Sl8bQtQ2 ガはいらなくない?
836デフォルトの名無しさん
2017/11/11(土) 01:09:18.75ID:QwHnz2ZY >>832
オッサンか?
オッサンか?
837デフォルトの名無しさん
2017/11/11(土) 01:17:31.05ID:TdmokUpS ひょっとしてガチが若いとか思ってるんじゃないよな w
838デフォルトの名無しさん
2017/11/11(土) 01:21:19.20ID:QwHnz2ZY 若いと思ってるっつーか実際若いしな
ガチとか使う奴=低脳、バカっぽいって発想がオッサンぽい
ガチとか使う奴=低脳、バカっぽいって発想がオッサンぽい
839デフォルトの名無しさん
2017/11/11(土) 04:47:12.59ID:TdyG/ulQ アスペ指向スレッドの会話 174
840デフォルトの名無しさん
2017/11/11(土) 09:58:35.10ID:TdmokUpS >>838
ごめん、どうみてもお前の方がおっさんだよ ww
ごめん、どうみてもお前の方がおっさんだよ ww
841デフォルトの名無しさん
2017/11/11(土) 10:09:10.57ID:Lx/BUCVW842デフォルトの名無しさん
2017/11/11(土) 11:01:18.10ID:Zi5KnTyx アスペクト指向プログラミングってのは具体的にどんなのかよく分からんわ
興味ないから
興味ないから
843デフォルトの名無しさん
2017/11/11(土) 13:24:33.88ID:n/0UZzMc 興味ないなら知る必要ない
844デフォルトの名無しさん
2017/11/11(土) 18:10:49.46ID:QwHnz2ZY >>840
え?おまえって未成年か何か?
え?おまえって未成年か何か?
845デフォルトの名無しさん
2017/11/11(土) 18:34:36.42ID:TdmokUpS もうそのレスがおっさん臭い w
846デフォルトの名無しさん
2017/11/11(土) 18:52:46.73ID:EGHwL5V1 おっさんは嫌いかい?
847デフォルトの名無しさん
2017/11/11(土) 18:53:43.53ID:EGHwL5V1 おっさんは知識と経験と優しさでできています
残りの9割は脂肪です
残りの9割は脂肪です
848デフォルトの名無しさん
2017/11/11(土) 19:41:06.94ID:nQmTPzFJ おっさんは別に嫌いじゃないけど>>838みたく勘違いしてる奴はキモい
849デフォルトの名無しさん
2017/11/11(土) 21:36:07.55ID:TdyG/ulQ オッサン指向ガチムチな設計 174
850デフォルトの名無しさん
2017/11/12(日) 11:03:42.20ID:hG4wTZ8S おっさん煽りでスレ消化して楽しいんだろうか
851デフォルトの名無しさん
2017/11/12(日) 11:10:51.09ID:H0u2BwIs アスペ志向プログラミング。
852デフォルトの名無しさん
2017/11/12(日) 13:09:56.66ID:CLpxq670 >>849
ホモはお帰りください
ホモはお帰りください
853デフォルトの名無しさん
2017/12/05(火) 13:42:11.58ID:x/Ziu4N3 やっぱり青木 淳いいな
若い時に心酔して、経験積むうちに忘れていたが
ようやく言わんとすることが分かつて来た
若い時に心酔して、経験積むうちに忘れていたが
ようやく言わんとすることが分かつて来た
854デフォルトの名無しさん
2018/01/04(木) 13:45:00.27ID:rLoh+wxC 2ちゃんねる自体、どこかの機能でデザインパターンつかわれてるの?
855デフォルトの名無しさん
2018/01/05(金) 18:43:53.01ID:kDZQv7Ud >>854
つこてるマメがちがうよ
つこてるマメがちがうよ
856デフォルトの名無しさん
2018/01/27(土) 22:10:53.07ID:FKF1aZVQ クラス図とER図の違いって継承関係が
あるかないかだと思ってるんだけど、
DBのテーブルって継承はないわけじゃん、
継承とか知識レベル/操作レベルってDB設計的には
どう対応するの?
あるかないかだと思ってるんだけど、
DBのテーブルって継承はないわけじゃん、
継承とか知識レベル/操作レベルってDB設計的には
どう対応するの?
857デフォルトの名無しさん
2018/01/28(日) 07:50:43.37ID:JtfoYsxK858デフォルトの名無しさん
2018/01/28(日) 08:06:43.20ID:9retBgHA CRUDは外部的だね
データ保護に対しては各種制約を設けるしかない
それらを言語側で埋めるのがORマッピングだったりDAOパターンだったり
データ保護に対しては各種制約を設けるしかない
それらを言語側で埋めるのがORマッピングだったりDAOパターンだったり
859デフォルトの名無しさん
2018/01/28(日) 20:53:59.18ID:iKmgvq7C >>857
いやそれは分かったが実際のテーブルはどうするんだよ
親クラスと 子クラスA 子クラスBのテーブル全部別々に
作るの?
ここでいいう親子は継承の親子関係のことで
外部キーでの関連のことではないものとする。
いやそれは分かったが実際のテーブルはどうするんだよ
親クラスと 子クラスA 子クラスBのテーブル全部別々に
作るの?
ここでいいう親子は継承の親子関係のことで
外部キーでの関連のことではないものとする。
860デフォルトの名無しさん
2018/01/28(日) 21:10:28.78ID:LAVjxJs1 考え方次第かな?
一つのテーブルに全カラム持たせるか差分情報だけのテーブルを連結するか
一つのテーブルに全カラム持たせるか差分情報だけのテーブルを連結するか
861デフォルトの名無しさん
2018/03/31(土) 13:51:12.70ID:O6Ruc86y オブジェクト指向の考え方を教えてください
指定した2点を通る線を描画するプログラムを作ろうと思っています。
・色
・線の太さ
こんなプロパティを持つクラス「DrawLine」を考えています。
さらにこのクラスを継承を用いて
・2点間のみ線を引く線分クラス
・2点を通る直線クラス
・2点のうち片方を始点に持つ半直線クラス
を派生させようかと思っています。
これとは別に描画のインターフェースを担うクラス「LineInterface」を用意しようと思っています
・線を引く
・線を消す
・2点の位置を変更を受け付ける
・色の変更を受け付ける
・線の太さの変更を受け付ける
・線分、直線、半直線の変更を受け付ける
さて、ここで疑問なのですが、インターフェースを担うクラス「LineInterface」は
内部に色や線の太さ、線分・直線・半直線の状態を記憶するbool値型のフラグ
ないしはenum型の値(線分・直線・半直線)を持つべきでしょうか?
最初はこの手のフラグには頼らない設計を心がけてみました。
色、線の太さ、線分・直線・半直線、これらの状態が変更されるたびに
クラス「DrawLine」のインスタンスを作成し直せばいいと思ったからです。
ただすぐに壁にぶち当たりまして、たとえば色を変更しようと思いクラス「DrawLine」の
インスタンスを作り直そうと思ったとき、それが線分クラスなのか半直線クラスなのか
直線クラスなのかは状態を記録しておかないと判断できないことに気付きました。
インターフェースクラスには最低限の内部状態はbool値enum値フラグとして保持しておくべきでしょうか?
指定した2点を通る線を描画するプログラムを作ろうと思っています。
・色
・線の太さ
こんなプロパティを持つクラス「DrawLine」を考えています。
さらにこのクラスを継承を用いて
・2点間のみ線を引く線分クラス
・2点を通る直線クラス
・2点のうち片方を始点に持つ半直線クラス
を派生させようかと思っています。
これとは別に描画のインターフェースを担うクラス「LineInterface」を用意しようと思っています
・線を引く
・線を消す
・2点の位置を変更を受け付ける
・色の変更を受け付ける
・線の太さの変更を受け付ける
・線分、直線、半直線の変更を受け付ける
さて、ここで疑問なのですが、インターフェースを担うクラス「LineInterface」は
内部に色や線の太さ、線分・直線・半直線の状態を記憶するbool値型のフラグ
ないしはenum型の値(線分・直線・半直線)を持つべきでしょうか?
最初はこの手のフラグには頼らない設計を心がけてみました。
色、線の太さ、線分・直線・半直線、これらの状態が変更されるたびに
クラス「DrawLine」のインスタンスを作成し直せばいいと思ったからです。
ただすぐに壁にぶち当たりまして、たとえば色を変更しようと思いクラス「DrawLine」の
インスタンスを作り直そうと思ったとき、それが線分クラスなのか半直線クラスなのか
直線クラスなのかは状態を記録しておかないと判断できないことに気付きました。
インターフェースクラスには最低限の内部状態はbool値enum値フラグとして保持しておくべきでしょうか?
862デフォルトの名無しさん
2018/03/31(土) 14:36:01.69ID:c97ae/y4 筋が悪い
863デフォルトの名無しさん
2018/03/31(土) 15:08:51.89ID:jo8oJ0bD864デフォルトの名無しさん
2018/03/31(土) 15:12:00.87ID:O6Ruc86y 出直してきまつ(´;ω;`)ウゥッ
865デフォルトの名無しさん
2018/03/31(土) 15:19:37.25ID:bjBtCztz なぜか観てしまう!!サバイバル系youtuberまとめ
http://tokyohitori.hatenablog.com/entry/2016/10/01/102830
あのPewDiePieがついに、初心YouTuber向けに「視聴回数」「チャンネル登録者数」を増やすコツを公開!
http://naototube.com/2017/08/14/for-new-youtubers/
27歳で年収8億円 女性ユーチューバー「リリー・シン」の生き方
https://headlines.yahoo.co.jp/article?a=20170802-00017174-forbes-bus_all
1年で何十億円も稼ぐ高収入ユーチューバー世界ランキングトップ10
https://gigazine.net/news/20151016-highest-paid-youtuber-2015/
おもちゃのレビューで年間12億円! 今、話題のYouTuberは6歳の男の子
https://www.businessinsider.jp/post-108355
彼女はいかにして750万人のファンがいるYouTubeスターとなったのか?
https://www.businessinsider.jp/post-242
1億円稼ぐ9歳のYouTuberがすごすぎる……アメリカで話題のEvanTubeHD
https://weekly.ascii.jp/elem/000/000/305/305548/
専業YouTuberがYouTubeでの稼ぎ方具体的に教えます。ネタ切れしない方法は〇〇するだけ。
https://www.youtube.com/watch?v=Co9a9fHfReo
YouTubeで稼げるジャンルは〇〇動画です。YouTube講座
https://www.youtube.com/watch?v=_Nps8xb5czQ
http://tokyohitori.hatenablog.com/entry/2016/10/01/102830
あのPewDiePieがついに、初心YouTuber向けに「視聴回数」「チャンネル登録者数」を増やすコツを公開!
http://naototube.com/2017/08/14/for-new-youtubers/
27歳で年収8億円 女性ユーチューバー「リリー・シン」の生き方
https://headlines.yahoo.co.jp/article?a=20170802-00017174-forbes-bus_all
1年で何十億円も稼ぐ高収入ユーチューバー世界ランキングトップ10
https://gigazine.net/news/20151016-highest-paid-youtuber-2015/
おもちゃのレビューで年間12億円! 今、話題のYouTuberは6歳の男の子
https://www.businessinsider.jp/post-108355
彼女はいかにして750万人のファンがいるYouTubeスターとなったのか?
https://www.businessinsider.jp/post-242
1億円稼ぐ9歳のYouTuberがすごすぎる……アメリカで話題のEvanTubeHD
https://weekly.ascii.jp/elem/000/000/305/305548/
専業YouTuberがYouTubeでの稼ぎ方具体的に教えます。ネタ切れしない方法は〇〇するだけ。
https://www.youtube.com/watch?v=Co9a9fHfReo
YouTubeで稼げるジャンルは〇〇動画です。YouTube講座
https://www.youtube.com/watch?v=_Nps8xb5czQ
866デフォルトの名無しさん
2018/03/31(土) 15:23:11.79ID:c97ae/y4 test
867デフォルトの名無しさん
2018/03/31(土) 15:28:08.71ID:vu/Huc/I 長文書いてしまう人はもうちょっと図や箇条書きして考えまとめた方がいいな
868デフォルトの名無しさん
2018/03/31(土) 16:04:12.88ID:fnj+62QA とりあえずC#で書くとこんな感じか
class abstract LineBase{
public float width{get; private set;}
public Color color{get; private set;}
public Point start{get; private set;}
public Point end{get; private set;}
// 初期値をセット
public LineBase(引数){}
public LineBase(LineBase instance){}
// 共通メソッドを実装
public void SetWidth(int width){}
public void SetColor(Color col){}
public void SetPoint(Point start, Point end){}
public void Eraser(){}
public virtual void Draw(){} // 仮想メソッド
}
class SegmentLine: LineBase{
public SegmentLine(引数): base(引数){}
public SegmentLine(LineBase instance): base(instance){}
public overrider void Draw(){} // 線分の描画処理を実装
}
class StraightLine: LineBase{
public SegmentLine(引数): base(引数){}
public SegmentLine(LineBase instance): base(instance){}
public overrider void Draw(){} // 直線の描画処理を実装
}
class abstract LineBase{
public float width{get; private set;}
public Color color{get; private set;}
public Point start{get; private set;}
public Point end{get; private set;}
// 初期値をセット
public LineBase(引数){}
public LineBase(LineBase instance){}
// 共通メソッドを実装
public void SetWidth(int width){}
public void SetColor(Color col){}
public void SetPoint(Point start, Point end){}
public void Eraser(){}
public virtual void Draw(){} // 仮想メソッド
}
class SegmentLine: LineBase{
public SegmentLine(引数): base(引数){}
public SegmentLine(LineBase instance): base(instance){}
public overrider void Draw(){} // 線分の描画処理を実装
}
class StraightLine: LineBase{
public SegmentLine(引数): base(引数){}
public SegmentLine(LineBase instance): base(instance){}
public overrider void Draw(){} // 直線の描画処理を実装
}
869デフォルトの名無しさん
2018/03/31(土) 16:07:03.50ID:fnj+62QA >>861
何のクラスかは正直どうでもいい
こんな感じで基底型のインスタンスをコンストラクタに渡してコピーしとけ
// 線分クラスを生成
LineBase segment = new SegmentLine(初期値を渡す);
// 線分のデータで直線クラスを生成
LineBase straight = new StraightLine(segment);
何のクラスかは正直どうでもいい
こんな感じで基底型のインスタンスをコンストラクタに渡してコピーしとけ
// 線分クラスを生成
LineBase segment = new SegmentLine(初期値を渡す);
// 線分のデータで直線クラスを生成
LineBase straight = new StraightLine(segment);
870デフォルトの名無しさん
2018/03/31(土) 16:42:41.66ID:O6Ruc86y >>869
最初線分を描いて、途中で気が変わってやっぱり直線を描きたいな、となったときは
インスタンスsegmentを消去したのち、インスタンスstraightを選択してDraw()を実行する
という理解でよろしいでしょうか?
さらにその状態で色を変えたいときはインスタンスstraightを選んだまま色を変えるということでしょうか?
インスタンスsegmentとインスタンスstraight、いま選んでいるのはどちらか?という情報は
どこかに格納しておくべきでしょうか?
最初線分を描いて、途中で気が変わってやっぱり直線を描きたいな、となったときは
インスタンスsegmentを消去したのち、インスタンスstraightを選択してDraw()を実行する
という理解でよろしいでしょうか?
さらにその状態で色を変えたいときはインスタンスstraightを選んだまま色を変えるということでしょうか?
インスタンスsegmentとインスタンスstraight、いま選んでいるのはどちらか?という情報は
どこかに格納しておくべきでしょうか?
871デフォルトの名無しさん
2018/03/31(土) 19:12:42.71ID:NUZUQ+fU >>861
・線の引き方の違いを継承で実装する
・線のデータをフラグで持つ
特にこの二点はオブジェクト指向として筋が良くない
・線の引き方はメソッドで実装
・データはフラグじゃなくオブジェクトで渡す
こっちの方がオススメ
・線の引き方の違いを継承で実装する
・線のデータをフラグで持つ
特にこの二点はオブジェクト指向として筋が良くない
・線の引き方はメソッドで実装
・データはフラグじゃなくオブジェクトで渡す
こっちの方がオススメ
872デフォルトの名無しさん
2018/03/31(土) 19:51:14.18ID:O6Ruc86y >>871
クラス「DrawLine」は単純なDraw()メソッドは廃止して代わりに
DrawStraightLine()…直線を描画するメソッド
DrawSegmentLine()…線分を描画するメソッド
DrawHalfLine()…半直線を描画するメソッド
を実装し、インターフェースからクラス「DrawLine」には
・2点の情報が格納された構造体
・色、線の太さの情報が格納された構造体
を渡す。
という理解でよろしいでしょうか?
ちなみにインターフェース上では線の引き方はフラグ等で格納しておいても構いませんか?
ユーザーがインターフェースに対して
SetSegmentLine()
などの命令を実行したらそれに応じてbool値に記憶させておくというのが常道でしょうか?
クラス「DrawLine」は単純なDraw()メソッドは廃止して代わりに
DrawStraightLine()…直線を描画するメソッド
DrawSegmentLine()…線分を描画するメソッド
DrawHalfLine()…半直線を描画するメソッド
を実装し、インターフェースからクラス「DrawLine」には
・2点の情報が格納された構造体
・色、線の太さの情報が格納された構造体
を渡す。
という理解でよろしいでしょうか?
ちなみにインターフェース上では線の引き方はフラグ等で格納しておいても構いませんか?
ユーザーがインターフェースに対して
SetSegmentLine()
などの命令を実行したらそれに応じてbool値に記憶させておくというのが常道でしょうか?
873デフォルトの名無しさん
2018/04/01(日) 03:19:52.65ID:qrIxuUzF >>872
前半はそう。継承を使うのはダメじゃないんだけど
継承を使いこなすのは非常に難しいので
慣れるまではメソッドをたくさん生やす方が分かりやすい
後半はフラグとかいらない
そういう発想がまだないんだろうけど
デザインパターン勉強するとよく分かる
オブジェクトの生成と使用を分けて
なるべく値の設定を生成の一回だけで済ますと
フラグの不整合のバグが減ってソフトが安定する
これがオブジェクト指向を使うメリットのひとつ
特にオブジェクトが常に動き回るゲームとかじゃなくて
作図ソフトだったら基本的に一度オブジェクトを作ったら
そのまま静的な図になるから位置は不変データにして
もし位置を修正するときにはオブジェクトを再生成する
なんでそうするかっていうとフラグがバラバラ増えていくと
どこで値を変更したのか不明で後でメンテが困難になってくるから
できる限り生成時に一括で設定するようにするの
前半はそう。継承を使うのはダメじゃないんだけど
継承を使いこなすのは非常に難しいので
慣れるまではメソッドをたくさん生やす方が分かりやすい
後半はフラグとかいらない
そういう発想がまだないんだろうけど
デザインパターン勉強するとよく分かる
オブジェクトの生成と使用を分けて
なるべく値の設定を生成の一回だけで済ますと
フラグの不整合のバグが減ってソフトが安定する
これがオブジェクト指向を使うメリットのひとつ
特にオブジェクトが常に動き回るゲームとかじゃなくて
作図ソフトだったら基本的に一度オブジェクトを作ったら
そのまま静的な図になるから位置は不変データにして
もし位置を修正するときにはオブジェクトを再生成する
なんでそうするかっていうとフラグがバラバラ増えていくと
どこで値を変更したのか不明で後でメンテが困難になってくるから
できる限り生成時に一括で設定するようにするの
874デフォルトの名無しさん
2018/04/01(日) 11:40:58.30ID:eiVy9NnE >>873
こんな感じでどうでしょうか。
インターフェースを担うクラス「LineInterface」から
実際に線を描画するクラス「DrawLine」に向けて
新たに以下のような3番目のクラス「Information」を作成し、このインスタンスを投げようかと思います。
クラス「Information」には2点の位置座標、色、線の太さ、半直線か直線か線分かの情報が格納されています。
Class Information
{
public:
double x1, y1, x2, y2;
int color;
int lineWidth;
bool leftExtendFlag, rightExtendFlag;
};
線を描画するのに必要な情報は全てこのクラスに格納・隠蔽します。
ユーザーから線に関する新たな情報を受け付けたら
こんな感じでどうでしょうか。
インターフェースを担うクラス「LineInterface」から
実際に線を描画するクラス「DrawLine」に向けて
新たに以下のような3番目のクラス「Information」を作成し、このインスタンスを投げようかと思います。
クラス「Information」には2点の位置座標、色、線の太さ、半直線か直線か線分かの情報が格納されています。
Class Information
{
public:
double x1, y1, x2, y2;
int color;
int lineWidth;
bool leftExtendFlag, rightExtendFlag;
};
線を描画するのに必要な情報は全てこのクラスに格納・隠蔽します。
ユーザーから線に関する新たな情報を受け付けたら
875デフォルトの名無しさん
2018/04/01(日) 11:44:40.29ID:eiVy9NnE あ、失礼。途中で書き込んでしまいましたorz
ユーザーから線に関する新たな情報を受け付けたら
クラスInformationに用意した専用メソッドを通してメンバ変数にデータがセットされます。
直接メンバ変数を操作するわけではないので(bool型のフラグを直接いじることはない)
安全面でも良いかと
このインスタンスを受け取った「DrawLine」クラスはメンバ変数を直接読み込み(publicで
宣言したのでアクセス可能)、線を描画します。
書き換えはせず、新たなデータを受け取とるたびに「DrawLine」クラスのインスタンスを
新規に作成しようと思います(なのでデータはコンストラクタで受け取るのみ)。
こんな感じでオブジェクト指向になるでしょうか?
ユーザーから線に関する新たな情報を受け付けたら
クラスInformationに用意した専用メソッドを通してメンバ変数にデータがセットされます。
直接メンバ変数を操作するわけではないので(bool型のフラグを直接いじることはない)
安全面でも良いかと
このインスタンスを受け取った「DrawLine」クラスはメンバ変数を直接読み込み(publicで
宣言したのでアクセス可能)、線を描画します。
書き換えはせず、新たなデータを受け取とるたびに「DrawLine」クラスのインスタンスを
新規に作成しようと思います(なのでデータはコンストラクタで受け取るのみ)。
こんな感じでオブジェクト指向になるでしょうか?
876873
2018/04/01(日) 20:00:03.25ID:qrIxuUzF877デフォルトの名無しさん
2018/04/01(日) 22:44:15.70ID:eiVy9NnE >>876
> 細かいとこでキリがないけど
> でもそれで組んでみればいいんじゃないの
了解しました、この方向で組んでみます
> OOPの要点を一言でいうと疎結合にすることで
> ゴチャゴチャするようだったらまた設計を見直していく
プログラムに関する本はちまたに溢れかえっているんですが
オブジェクト指向の設計に関する本ってなかなか見かけませんね
学ぶだけでなく説明する方も難しいのかもしれません>オブジェクト指向
> 細かいとこでキリがないけど
> でもそれで組んでみればいいんじゃないの
了解しました、この方向で組んでみます
> OOPの要点を一言でいうと疎結合にすることで
> ゴチャゴチャするようだったらまた設計を見直していく
プログラムに関する本はちまたに溢れかえっているんですが
オブジェクト指向の設計に関する本ってなかなか見かけませんね
学ぶだけでなく説明する方も難しいのかもしれません>オブジェクト指向
878デフォルトの名無しさん
2018/04/01(日) 23:09:11.53ID:qrIxuUzF879デフォルトの名無しさん
2018/04/01(日) 23:15:35.41ID:eiVy9NnE >>878
そうでしたか、本屋さん行って見ます(´・ω・`)ノ
そうでしたか、本屋さん行って見ます(´・ω・`)ノ
880デフォルトの名無しさん
2018/04/01(日) 23:54:31.59ID:voVzLJKC >>877
多分そもそもオブジェクト指向を「学ぶもの」と思っている時点で間違い。
あれは悟るものだ。
>>861
おそらくOOPの練習なのだろうけど、そもそも題材も悪い。
オブジェクトの切り方は例えば .NET でも見てみればいいでしょ。
Graphicクラスに全部メソッドが付いている。
https://msdn.microsoft.com/ja-jp/library/system.drawing.graphics(v=vs.110).aspx
というか、線分と半直線と直線を別のオブジェクトにする意味が分からない。
余計使いにくくなるだけだ。何をどう抽象化(共通化)すべきなのか、全く分かってない。
ただな、OOPを「初心者」が理解するのは不可能なんだよ。
心は>>873に書いてあるとおりだが、要するに、
・なかなか複雑になってメンテが辛くなってきた物を、多少なんとかするもの
であって、
初心者が組める範囲で複雑になることなんてあり得ないから、理解しようがない。
だから、「頭でっかち」方式で最初に学ぶのはかなり無理。
デタラメでもいいからやってみて、
自分で「ああこういう事をすると苦労するのか」と地雷を全部踏んでみれば納得するだろうし、
おそらくそっちの方が早い。そうしているうちに上達もするだろうし。
OOPで一番重要なのは「分割」だ。(粗結合化)
ところが初心者が組める規模では「分割」する必要なんてないから、
初心者は常に「継承」をこねくり回して練習しようとするが、それは明確な間違いだ。
それをいくらやっても意味がない。
「分割」しないと手に負えない規模の物を早く組めるようになり、
それを上手く「分割」出来るように努力することだ。
ここら辺の話は「プログラミング言語C++」に書いてある。
(今のOOPはC++作者が再定義したものだから当然ではあるが)
多分そもそもオブジェクト指向を「学ぶもの」と思っている時点で間違い。
あれは悟るものだ。
>>861
おそらくOOPの練習なのだろうけど、そもそも題材も悪い。
オブジェクトの切り方は例えば .NET でも見てみればいいでしょ。
Graphicクラスに全部メソッドが付いている。
https://msdn.microsoft.com/ja-jp/library/system.drawing.graphics(v=vs.110).aspx
というか、線分と半直線と直線を別のオブジェクトにする意味が分からない。
余計使いにくくなるだけだ。何をどう抽象化(共通化)すべきなのか、全く分かってない。
ただな、OOPを「初心者」が理解するのは不可能なんだよ。
心は>>873に書いてあるとおりだが、要するに、
・なかなか複雑になってメンテが辛くなってきた物を、多少なんとかするもの
であって、
初心者が組める範囲で複雑になることなんてあり得ないから、理解しようがない。
だから、「頭でっかち」方式で最初に学ぶのはかなり無理。
デタラメでもいいからやってみて、
自分で「ああこういう事をすると苦労するのか」と地雷を全部踏んでみれば納得するだろうし、
おそらくそっちの方が早い。そうしているうちに上達もするだろうし。
OOPで一番重要なのは「分割」だ。(粗結合化)
ところが初心者が組める規模では「分割」する必要なんてないから、
初心者は常に「継承」をこねくり回して練習しようとするが、それは明確な間違いだ。
それをいくらやっても意味がない。
「分割」しないと手に負えない規模の物を早く組めるようになり、
それを上手く「分割」出来るように努力することだ。
ここら辺の話は「プログラミング言語C++」に書いてある。
(今のOOPはC++作者が再定義したものだから当然ではあるが)
881デフォルトの名無しさん
2018/04/01(日) 23:59:53.19ID:eiVy9NnE882デフォルトの名無しさん
2018/04/02(月) 00:22:40.39ID:zddvN9B7 >>881
まあ君はやろうとしているだけかなりマシだよ。
やろうとせずに知ろうとだけする奴も多いからね。
そもそも、
・これこれこうで、後はよきにはからえ
と処理を投げられる物をオブジェクトにするべきであって、
逆に、そうでない物をオブジェクトにしても余計に話が混乱するだけ。
「隠蔽」も、初心者はとにかく「隠蔽」しようとするが、これも間違いで、
(外部から使うときに)そもそも見たくも知りたくもない物を「隠蔽」するんだよ。
といっても、やらないと分からないだろうから、まずは頑張れ。
まあ君はやろうとしているだけかなりマシだよ。
やろうとせずに知ろうとだけする奴も多いからね。
そもそも、
・これこれこうで、後はよきにはからえ
と処理を投げられる物をオブジェクトにするべきであって、
逆に、そうでない物をオブジェクトにしても余計に話が混乱するだけ。
「隠蔽」も、初心者はとにかく「隠蔽」しようとするが、これも間違いで、
(外部から使うときに)そもそも見たくも知りたくもない物を「隠蔽」するんだよ。
といっても、やらないと分からないだろうから、まずは頑張れ。
883デフォルトの名無しさん
2018/04/02(月) 04:18:10.81ID:3ewhMOuh >OOPはC++作者が再定義したもの
元凶だよな
Javaも再定義してるけど
元凶だよな
Javaも再定義してるけど
884デフォルトの名無しさん
2018/04/02(月) 08:32:10.05ID:i02Vx/uo (第1章 はじめに 2頁)
たとえば、CycはFredという名前の男が朝にひげをそるという話が理解できなかった。
Cycの推論エンジンは、この話の中に矛盾を見つけた。Cycは人間には電気の部品がないことは知っているが、
Fredが電気カミソリを持っていたので、エンティティ「Fredがひげそり中(FredWhileShaving)」
には電気の部品が含まれていると考えた。したがって、CycはFredがひげをそっている間、
Fredはそれでも人間なのかと尋ねた。
『深層学習』
著者:
Ian Goodfellow, イアングッドフェロー,
Yoshua Bengio, ヨシュアベンジオ,
Aaron Courville, アーロンカービル
たとえば、CycはFredという名前の男が朝にひげをそるという話が理解できなかった。
Cycの推論エンジンは、この話の中に矛盾を見つけた。Cycは人間には電気の部品がないことは知っているが、
Fredが電気カミソリを持っていたので、エンティティ「Fredがひげそり中(FredWhileShaving)」
には電気の部品が含まれていると考えた。したがって、CycはFredがひげをそっている間、
Fredはそれでも人間なのかと尋ねた。
『深層学習』
著者:
Ian Goodfellow, イアングッドフェロー,
Yoshua Bengio, ヨシュアベンジオ,
Aaron Courville, アーロンカービル
885デフォルトの名無しさん
2018/04/02(月) 23:04:05.50ID:d0x/o4SK アメリカのジョークはよく分からん。
きっと翻訳が悪いんだな
きっと翻訳が悪いんだな
886デフォルトの名無しさん
2018/04/03(火) 00:23:48.15ID:cU9BUIMs 電気の部品が誤訳か
887デフォルトの名無しさん
2018/04/03(火) 07:27:20.27ID:93hqFpFO888デフォルトの名無しさん
2018/04/03(火) 08:14:01.65ID:U8mOCWOb C++からSmalltalkにちょい戻したのがJavaのOOPじゃね
889デフォルトの名無しさん
2018/04/03(火) 08:14:49.22ID:U8mOCWOb Javaは抽象データ型のOOPをより純化させたとも言えるか
890デフォルトの名無しさん
2018/04/03(火) 14:49:04.54ID:W7EC8mO+ smalltalkの臭すぎて堪らんところをc++で置き換えたのがJava
891デフォルトの名無しさん
2018/04/03(火) 16:24:37.04ID:R6gDm2yr 一番上手くやってるのは Objective-C だと思う
892デフォルトの名無しさん
2018/04/03(火) 19:48:24.93ID:J58Y9OWc Obj-C好きなのだが中身がC丸出しなのがなぁ…
swiftは文法モダンに!でまた“ここで処理投げてます!”が
わからないようにする悪弊組み込まれちゃったし…
(それは退歩なんだってば)
swiftは文法モダンに!でまた“ここで処理投げてます!”が
わからないようにする悪弊組み込まれちゃったし…
(それは退歩なんだってば)
893デフォルトの名無しさん
2018/04/03(火) 20:48:38.44ID:MVEz7YW1 20年前はObjcet-Cなんて一部の物好きの研究者しか使ってなかった
FORTANやPascalと共に滅亡して時代はC++かJAVAの二強になると
堅く信じていた当時からすれば今のObject-Cの人気ぶりには隔世の感がある
FORTANやPascalと共に滅亡して時代はC++かJAVAの二強になると
堅く信じていた当時からすれば今のObject-Cの人気ぶりには隔世の感がある
894デフォルトの名無しさん
2018/04/03(火) 21:27:13.17ID:/J95OWxU objcが人気なんじゃなくてiPhoneが人気なだけ
swiftの普及の早さを見ればわかるでしょ、みんな嫌々objcを使ってたって
swiftの普及の早さを見ればわかるでしょ、みんな嫌々objcを使ってたって
895デフォルトの名無しさん
2018/04/03(火) 21:53:44.19ID:xHu3FOx+ 使われているかどうかと人気があるかどうかは別だからね
嫌いだけど選択肢が少ないから仕方なく使っているって人も多い
だって実際に
> 嫌われる傾向が強いほかの言語には、「PHP」「Objective-C」
>「CoffeeScript」「Ruby」などが挙がっている。
https://builder.japan.zdnet.com/tool/35109803/
> Stack Overflowは、この嫌われている言語ランキングに
> 使用したデータを、求職情報ページの「Developer Story」ページから
> 集めた。Developer Storyは、開発者が自分の職歴や実績などを
> まとめて公開できるサービスだが、このページには使いたい言語と使いたくない言語のタグを追加できるようになっている。
>
> 嫌われる傾向が強いほかの言語には、「PHP」「Objective-C」
>「CoffeeScript」「Ruby」などが挙がっている。
>
> 一方、嫌う人が少ない言語には、「R」「Kotlin」「TypeScript」
>「Rust」「Bash」「Clojure」「Swift」「Python」「JavaScript」「Go」などが並んだ。
嫌いだけど選択肢が少ないから仕方なく使っているって人も多い
だって実際に
> 嫌われる傾向が強いほかの言語には、「PHP」「Objective-C」
>「CoffeeScript」「Ruby」などが挙がっている。
https://builder.japan.zdnet.com/tool/35109803/
> Stack Overflowは、この嫌われている言語ランキングに
> 使用したデータを、求職情報ページの「Developer Story」ページから
> 集めた。Developer Storyは、開発者が自分の職歴や実績などを
> まとめて公開できるサービスだが、このページには使いたい言語と使いたくない言語のタグを追加できるようになっている。
>
> 嫌われる傾向が強いほかの言語には、「PHP」「Objective-C」
>「CoffeeScript」「Ruby」などが挙がっている。
>
> 一方、嫌う人が少ない言語には、「R」「Kotlin」「TypeScript」
>「Rust」「Bash」「Clojure」「Swift」「Python」「JavaScript」「Go」などが並んだ。
896デフォルトの名無しさん
2018/04/03(火) 21:59:40.75ID:xHu3FOx+ こっちは別のデータ
https://news.mynavi.jp/article/20170330-a133/
> fossBytesに3月28日(米国時間)に掲載された記事「Which Are The Most Loved and Most
> Hated Programming Languages|2017」が、Stack Overflow Developer Survey 2017の
> 調査結果を引き合いに出し、開発者に愛されているプログラミング言語と嫌われている
> プログラミング言語のトップ25を伝えた。愛されているプログラミング言語1位は
> Rustで、これにSmalltalkとTypescript、Swift、Goが続いている。
>
> 嫌われているプログラミング言語トップ25は次のとおり。
> Visual Basic 6
> VBA
> CoffeeScript
> VB.NET
> Matlab
> Objective-C
> Assembly
> Perl
> Lua
> Hack
略
https://news.mynavi.jp/article/20170330-a133/
> fossBytesに3月28日(米国時間)に掲載された記事「Which Are The Most Loved and Most
> Hated Programming Languages|2017」が、Stack Overflow Developer Survey 2017の
> 調査結果を引き合いに出し、開発者に愛されているプログラミング言語と嫌われている
> プログラミング言語のトップ25を伝えた。愛されているプログラミング言語1位は
> Rustで、これにSmalltalkとTypescript、Swift、Goが続いている。
>
> 嫌われているプログラミング言語トップ25は次のとおり。
> Visual Basic 6
> VBA
> CoffeeScript
> VB.NET
> Matlab
> Objective-C
> Assembly
> Perl
> Lua
> Hack
略
897デフォルトの名無しさん
2018/04/04(水) 03:20:59.36ID:h2UR4/YM >>895
なんでVBとかVBAが入ってないし
なんでVBとかVBAが入ってないし
898デフォルトの名無しさん
2018/04/04(水) 03:22:51.75ID:h2UR4/YM899デフォルトの名無しさん
2018/04/04(水) 06:54:46.68ID:ITrH2VCT Smalltalk死滅したと思ってたw普通に処理系とかある
https://dotinstall.com/lessons/basic_smalltalk
https://dotinstall.com/lessons/basic_smalltalk
900デフォルトの名無しさん
2018/04/04(水) 07:59:57.79ID:xIeCjOW7 Smalltalkは今でも現役だよ
日本では壊滅的に過疎ってるだけで
日本では壊滅的に過疎ってるだけで
901デフォルトの名無しさん
2018/04/04(水) 09:40:51.95ID:XMHeCdXK おまえの思いは要らない
現役である証拠を書けばいい
現役である証拠を書けばいい
902デフォルトの名無しさん
2018/04/04(水) 09:52:34.51ID:xIeCjOW7 お前のツッコミも余計
手ぶらの批判は誰でもできる
事実としてPharoの処理系は更新され続けてる
手ぶらの批判は誰でもできる
事実としてPharoの処理系は更新され続けてる
903デフォルトの名無しさん
2018/04/04(水) 13:33:18.19ID:1Ww7GQWk 最近ようやくしょぼい専用VCS諦めてしょぼいGitHubクライアントを組み込みにしだしたみたいだね
904デフォルトの名無しさん
2018/04/04(水) 15:35:00.13ID:AI7Zq0uN 更新されていたら現役なのか……
よし、Dは現役だな
よし、Dは現役だな
905デフォルトの名無しさん
2018/04/04(水) 16:05:22.98ID:1Ww7GQWk それはない
906デフォルトの名無しさん
2018/04/04(水) 16:15:15.27ID:Vp4f9mRG インスタンス造り機に「このクラスのインスタンスを作れ」ってぶち込むより
クラスに自分のインスタンス造る機能が入ってて
「おまえのコピーをこの名前で作れ」の方が個人的には関与する言語機能が減って好き。
クラスに自分のインスタンス造る機能が入ってて
「おまえのコピーをこの名前で作れ」の方が個人的には関与する言語機能が減って好き。
907デフォルトの名無しさん
2018/04/04(水) 17:04:03.96ID:Pmay6Vdj javascriptか
908デフォルトの名無しさん
2018/04/05(木) 00:06:12.16ID:gzVEs0yB909デフォルトの名無しさん
2018/04/05(木) 00:08:00.87ID:gzVEs0yB >>906
> 「おまえのコピーをこの名前で作れ」の方が個人的には関与する言語機能が減って好き。
コピーしかできないのか?
なにもないところから作ることはできないのか?
コピーを作った後に、値を変更してインスタンスを完成させるのか?
> 「おまえのコピーをこの名前で作れ」の方が個人的には関与する言語機能が減って好き。
コピーしかできないのか?
なにもないところから作ることはできないのか?
コピーを作った後に、値を変更してインスタンスを完成させるのか?
910デフォルトの名無しさん
2018/04/05(木) 00:43:38.66ID:raTA0cM5 new Test() を Test.New() にでもすんのか?
911デフォルトの名無しさん
2018/04/05(木) 09:23:27.96ID:ZXf9eqYN それを言うなら Test.Default().Clone() とか Test.Default().Copy() かと
> 作った後に、値を変更してインスタンスを完成させるのか?
これってプロトタイプベースだから必要なわけではなく、クラスベースでもコンストラクタで普通にやってる作業だよね?
> 作った後に、値を変更してインスタンスを完成させるのか?
これってプロトタイプベースだから必要なわけではなく、クラスベースでもコンストラクタで普通にやってる作業だよね?
912デフォルトの名無しさん
2018/04/05(木) 09:31:20.59ID:ZXf9eqYN >>908
他の言語の場合は、更新程度なら必要条件にすらならないかもしれないけれど
Smalltalkみたいにドックフードとして食らうことが避けられず
動的かつ可塑性を最大の利点にしている言語・環境に限れば
更新(変化)し提供され続けていることは少なからぬ人に使われている証拠として十分だろうね
他の言語の場合は、更新程度なら必要条件にすらならないかもしれないけれど
Smalltalkみたいにドックフードとして食らうことが避けられず
動的かつ可塑性を最大の利点にしている言語・環境に限れば
更新(変化)し提供され続けていることは少なからぬ人に使われている証拠として十分だろうね
レス数が900を超えています。1000を超えると表示できなくなるよ。
ニュース
- 【次の一手】台湾問題で小林よしのり氏が私見「まさに戦争前夜」「ただちに徴兵制を敷いて、高市支持者を最前線へ」… ★5 [BFU★]
- 「母の部屋に安倍氏が表紙の機関誌が」「(安倍氏が被害者なのは)不思議に思いませんでした」山上被告の妹が証言 [おっさん友の会★]
- 【野球】大谷翔平、佐々木朗希、山本由伸らがWBC辞退なら広がる不協和音… 『過去イチ盛り上がらない大会』になる可能性も★2 [冬月記者★]
- 【news23】小川彩佳アナ「ここまでの広がりになるということを、高市総理はどれだけ想像できていたんでしょうね」 日中問題特集で [冬月記者★]
- 【国際】ロシアはすでに戦争準備段階――ポーランド軍トップが警告 [ぐれ★]
- 「町中華」の“息切れ倒産”が増加 ブームにも支えられ職人技で踏ん張ってきたが… 大手チェーンは値上げでも絶好調 [ぐれ★]
- 「韓国人の高市早苗評」、限界突破。 [592058334]
- 【高市売り】円安、止まらず!凄い勢いで暴落中。157円へ [219241683]
- 【悲報】サッカー北朝鮮代表、日本代表に思いっきりグーパン。想像以上に殴ってるやつが居る [483862913]
- 1,000万円のBMWに擦ってしまった札幌のガキ、捕らえられてガチで詰む [329329848]
- 青森のラーメン店、ライス・メンマ無料サービスを始める→ありえない残し方をした人が100人になったら即終了→すでに2人残してあと98人 [808139444]
- 【悲報】ヤフコメ民「中国が水産物を輸入禁止にするなら、日本国民向けに安く販売すればいい。中国依存から脱するべき」 [153736977]
