トップページ > プログラム > 2015年10月07日 > T1RoiOzF

書き込み順位&時間帯一覧

2 位/157 ID中時間01234567891011121314151617181920212223Total
書き込み数4000000100000000000002119



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
ふらっと C#,C♯,C#(初心者用) Part117 [転載禁止]©2ch.net
【JavaScript】スクリプト バトルロワイヤル51【php,py,pl,rb】©2ch.net

書き込みレス一覧

ふらっと C#,C♯,C#(初心者用) Part117 [転載禁止]©2ch.net
61 :デフォルトの名無しさん[sage]:2015/10/07(水) 00:11:55.48 ID:T1RoiOzF
Abstract Factoryを使えばいい

interface IHage { void DoHage(); }
interface IHoge { void DoHoge(); }
class Hage: IHage {
private IHoge hoge;
public Hage(Func<IHage, IHoge> hogeFactory) { this.hoge = hogeFactory(this); } }
class Hoge: IHoge { private IHage hage; public Hoge(IHage hage) { this.hage = hage; } }

これで new Hage(hoge => new Hage(hoge)) としてインスタンス作ればいい
factoryを変えればテスト時にHageにダミーのIHoge実装を食わせることもできる
【JavaScript】スクリプト バトルロワイヤル51【php,py,pl,rb】©2ch.net
968 :デフォルトの名無しさん[sage]:2015/10/07(水) 00:18:01.59 ID:T1RoiOzF
そうやって安易に言語固有のデータ構造を永続化すると後で変更するときに地獄を見るんだよなあ
ふらっと C#,C♯,C#(初心者用) Part117 [転載禁止]©2ch.net
63 :デフォルトの名無しさん[sage]:2015/10/07(水) 00:24:26.54 ID:T1RoiOzF
>>61訂正
new Hage(hage => new Hoge(hage))
【JavaScript】スクリプト バトルロワイヤル51【php,py,pl,rb】©2ch.net
972 :デフォルトの名無しさん[sage]:2015/10/07(水) 00:53:17.23 ID:T1RoiOzF
で、後でクラスを変更したくなったらどうするの?
コードを弄りづらくなるので、言語のオブジェクトをそのまま保存しようという考えは開発効率の面でも有害だよ
最初に書いたきり放り出して二度と触らないならいいけどね
【JavaScript】スクリプト バトルロワイヤル51【php,py,pl,rb】©2ch.net
977 :デフォルトの名無しさん[sage]:2015/10/07(水) 07:22:29.14 ID:T1RoiOzF
>>975
MySQLもPostgresもOracleも今時ほとんどのDBはJSON型をネイティブでサポートしてるぞ
当然、検索もJSONの構造に沿った形でインデックス付きで可能
ふらっと C#,C♯,C#(初心者用) Part117 [転載禁止]©2ch.net
77 :デフォルトの名無しさん[sage]:2015/10/07(水) 21:58:51.87 ID:T1RoiOzF
var groups = from x in hoge
where x.day.Year == 2015 && x.Month == 1
group x by x.BID into g;
foreach (var g in groups) {
 Console.WriteLine(“BID={0}, Sum={1}”, g.Key, g.Sum(x => x.num));
}
ふらっと C#,C♯,C#(初心者用) Part117 [転載禁止]©2ch.net
78 :デフォルトの名無しさん[sage]:2015/10/07(水) 21:59:22.05 ID:T1RoiOzF
>>77
訂正
into g は不要
ふらっと C#,C♯,C#(初心者用) Part117 [転載禁止]©2ch.net
81 :デフォルトの名無しさん[sage]:2015/10/07(水) 22:06:02.97 ID:T1RoiOzF
>>79-80
それだとBIDでグループ化されてないよ
メソッド形式でSumまで一行で書くならこう
var sums = hoge.Where(tdata => 略)
.GroupBy(tdata => tdata.BID)
.Select(g => new { BID = g.Key, Sum = g.Sum(tdata => tdata.num) });
ふらっと C#,C♯,C#(初心者用) Part117 [転載禁止]©2ch.net
87 :デフォルトの名無しさん[sage]:2015/10/07(水) 23:41:59.93 ID:T1RoiOzF
>>82
そもそも、IDしかわからない中途半端な投稿者オブジェクトを
新着一覧クラスの外に晒す必要があるのかよく考えたほうがいいよ。
新着一覧クラスが投稿者ID文字列のコレクションを公開するのが嫌なら
新着一覧クラス自身に投稿者詳細をダウンロードしてくるメソッドを持たせたっていい。
もちろん賛否両論あるだろうけど、オブジェクト指向に拘るのであれば
オブジェクトから情報を取り出すのはなるべく避けて、オブジェクトに命令していくようにするのが基本。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。