1 名前:デフォルトの名無しさん mailto:sage [2015/07/25(土) 16:14:05.15 ID:I42JqLkf.net] ■Visual Studio 2013 Community & Express(無償の統合開発環境)等はこちら www.visualstudio.com/downloads/ ■コードを貼る場合はこちら ideone.com/ ■前スレ C#, C♯, C#相談室 Part87 [転載禁止](c)2ch.net peace.2ch.net/test/read.cgi/tech/1427558696/ ■次スレは>>970 が建てる事。 建てられない場合は他を指定する事。
766 名前:デフォルトの名無しさん mailto:sage [2015/08/27(木) 19:34:06.84 ID:M7ObSeqi.net] 何がしたいんだかよくわからん MyClass はなんだかの形で定義? class B<T> は、もはや修正してエラーもなくせない メソッド名が重複するという問題にたどり着けんw
767 名前:デフォルトの名無しさん [2015/08/27(木) 21:05:28.92 ID:4ooez7+r.net] TはMyClassの継承関係です。 AとかBじゃ分かりにくいですね。 public abstract class 田中{ public abstract 行動 instance {get;} } public abstract class 修行した田中<料理> : 田中 where T ; 行動 { public 料理 instance {get;} } はじめからTつければいいじゃんとか思うかもしんないけど、 ジェネリックの共変性とかの問題があったりしてこんな実装になってます。
768 名前:デフォルトの名無しさん mailto:sage [2015/08/27(木) 21:16:20.73 ID:dljCNrWS.net] まず用語とやりたいことと質問を整理してくれる? お前の示したコードにメソッドも変数もないし、空想上の文法を示して以下のようなこと、で伝わると思うの?
769 名前:デフォルトの名無しさん mailto:sage [2015/08/27(木) 21:19:19.33 ID:crZaWZ5K.net] いや…これはシンプルに無視案件だろ こいつに関わってもなんの実りも無い
770 名前:デフォルトの名無しさん mailto:sage [2015/08/27(木) 21:27:08.41 ID:hme97lr4.net] >>756 public interface I田中{ 行動 instance {get;} } public abstract class 修行した田中<料理> : I田中 where 料理 ; 行動 { override 行動 I田中.instance { get { return this.instance; } } public 料理 instance {get;} } 何がしたいのかさっぱり分からんがこういうことか?
771 名前:デフォルトの名無しさん mailto:sage [2015/08/27(木) 21:35:49.89 ID:lF/OrL4X.net] 山田かもしれん
772 名前:デフォルトの名無しさん [2015/08/27(木) 21:46:52.77 ID:4ooez7+r.net] public abstract 行動 strategy {get;} を public override 料理 strategy {get;} に上書きしたいです。 まとめるとこうです。 1.オブジェクトの行動を戦略ポリモーフィズムで実現したい 2.継承クラスから戦略をジェネリックに呼び出したい 3.基底クラスの戦略呼び出しは継承クラスの戦略を呼び出す(abstract) 4.ジェネリックの共変性(.net3.5を利用)の問題で3を基底<T>およびメンバTとするのは、 その他のオブジェクトでキャストが膨大に発生するため、ジェネリックを持たない基底クラスを用意した
773 名前:デフォルトの名無しさん [2015/08/27(木) 21:56:46.79 ID:4ooez7+r.net] >>759 そういうことです! たぶんできました!ありがとうございます
774 名前:デフォルトの名無しさん mailto:sage [2015/08/27(木) 22:22:03.15 ID:pO3unHFi.net] エスパー乙
775 名前:デフォルトの名無しさん mailto:sage [2015/08/27(木) 23:39:03.06 ID:sO/8ZJev.net] ようわからんから寝るわ 明日は定時にあがって彼女とデートだ
776 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 00:22:50.64 ID:DVJpBS2x.net] ここ数年定時で上がった事無いや。 せめて残業30時間未満希望。
777 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 06:40:20.71 ID:Sz74PPpb.net] とりあえず "料理 ; " の ';' は何だよって感じの所の修正をして欲しかったな エラーが「メソッド名が重複」になるようなコードにしてから、問い合わせろよって感じ わけわかんねーよw
778 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 06:55:57.02 ID:Sz74PPpb.net] >>761 どうしてもそのようにしたければ、二段階に分けてやればいいんじゃねかな インターフェイスが正解だが public class 行動 { } public abstract class A { public abstract 行動 instance { get; } } public abstract class BBase<T> : A where T : 行動 { public override 行動 instance { get; } } public abstract class B<T> : BBase<T> where T : 行動 { public new T instance { get; } } public class 料理 : 行動 { } public class 所望の利用方法 : B<料理> { } リフレクション関係の.Net Frameworkのソースを読んでいたらこういうのに出会ったよ 以前のバージョンで公開してしまったが、互換性を維持しつつ改めて中身隠して継承したいという感じの部分で
779 名前:デフォルトの名無しさん [2015/08/28(金) 10:09:33.73 ID:bO0aCwDR.net] >>767 それだと基底クラスにキャストされているときに呼ばれると基底のメソッドが呼ばれてしまうので今回の要件ではまずいです。
780 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 11:43:18.34 ID:Sz74PPpb.net] >>768 基底クラスの変更はBBaseの方でやるの、二段階に分けるという事
781 名前:デフォルトの名無しさん [2015/08/28(金) 15:45:12.11 ID:O/DjZ5xn.net] BBase<T>からその上位のBのinstanceを呼べないのでまずいです。
782 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 15:48:24.22 ID:Sz74PPpb.net] なんでそこが問題やねんwww まぁ、互換性がうんぬんとかクリティアルな問題がある訳じゃなさそうだし interface 版でいいと思う それでやれば良かろう
783 名前:デフォルトの名無しさん [2015/08/28(金) 17:04:25.71 ID:bO0aCwDR.net] >>771
784 名前: そこがクリティカルだと何度も申し上げていますが。 解決したのでもういいです。 [] [ここ壊れてます]
785 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 17:05:03.05 ID:ZmO5l3R/.net] へーすごいじゃん
786 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 19:26:06.38 ID:jkdHSky5.net] 式木が全然わかんねぇ 動的に検索条件変えるのにつかいたいが
787 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 19:27:16.67 ID:GiTthi+A.net] bbaseってのはババアのSE(システンエンジニア)のことですよね?
788 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 19:58:34.57 ID:Lygpatgh.net] リソースの解放順序をコントロールするクラスを1回作ってしまえばDisposeの明示的呼び出しは完全に不要になるね
789 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 20:01:28.39 ID:LXLt4eax.net] またDispose君か フランスパン目に突き刺して死ね
790 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 20:05:55.57 ID:CjkSJ7ex.net] >>774 アホなことは考えるな 普通にクエリビルダ使え
791 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 20:49:33.85 ID:Sz74PPpb.net] >>776 いや、そこは普通にDispose使えよ、得体のしれないことするなw
792 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 20:55:43.87 ID:ls1PRuKg.net] アンマネージドなリソースをIDisposableなオブジェクトでラップするのは基本だろ え? >756はそういうことを言いたいんじゃないの?
793 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 21:38:47.88 ID:8lfDGDPP.net] Disposeを明示的に呼びだしている時点でおかしい
794 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 21:38:51.18 ID:cLOGe/lp.net] >>776 意味がわからない FormのDisposeはどうやったら不要になるの?
795 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 21:43:04.20 ID:Lygpatgh.net] リソース全部にいちいちDispose呼ぶ派って最近C言語からC#に移ってきた人?
796 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 21:53:36.50 ID:IPCW/fdR.net] using使ってもDisposeは呼びたくなる
797 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 21:55:20.42 ID:ls1PRuKg.net] ツマンネ
798 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 22:19:38.38 ID:jMAaefta.net] むしろc#やり込んで分かって来てからの方がIDispose使う頻度上がったけどな。 Disposeパターンちゃんと分かって無さそうだし、GC.SuppressFinalize()も使ったことないんだろうな。
799 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 22:21:47.32 ID:La0rg2tq.net] Dispose漫談
800 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 22:36:10.25 ID:k07is2fO.net] IDisposableを継承したオブジェクトを、 自分のクラスにコンポジションすると、 自分自身もIDisposableを実装する必要が出てきます このように、どんどんと、IDisposableは伝染していきます IDisposableの要らないクラスは、 メモリ以外のリソースを全く含まない、クラスだけです 終いには、IDisposableだらけになります インテリジェントなクラスほど、IDisposableになります これがGCの現実です
801 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 22:38:35.26 ID:ls1PRuKg.net] それで?
802 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 22:41:22.64 ID:La0rg2tq.net] へーすごいじゃん
803 名前:デフォルトの名無しさん mailto:sage [2015/09/02(水) 11:45:01.96 ID:QWgZ6B7l.net] 荒れてる時に失礼します 2ヶ月くらいの初心者ですが lab.tricorn.co.jp/toda/1088 ここにStateとStrategyの違いが書いてますが、構造上の違いは無いため 見分けるにはクラス名で見分けるしかないと書かれていますが、そうなのですか? 別にこの記事を批判してるわけじゃなく、私自身StateとStrategyの違いが イマイチよく分からないだけです
804 名前:デフォルトの名無しさん mailto:sage [2015/09/02(水) 15:37:43.17 ID:MYIvkVg2.net] 以下を実装しようと思っていますがフォーム外の マウスの座標をどうすれば補足し、メインフォーム上にレンダリングすれば 良いかわかりません。どの様に実装すればよいでしょうか? 1.フォームを起動する。 2.[座標調査]ボタンをクリック 3.マウスをフォームの外に移動したら 「1.」の中央に配置されたラベルにX座標・Y座標を表示する。
805 名前:デフォルトの名無しさん mailto:sage [2015/09/02(水) 15:43:14.58 ID:rdkBQaJ6.net] Cursor.Positionでスクリーン座標でのマウスカーソル位置が取れる。 タイマで定期的に取るようにすればいいんじゃない?
806 名前:デフォルトの名無しさん mailto:sage [2015/09/02(水) 16:16:36.49 ID:MYIvkVg2.net] >>793 サンキュー
807 名前:デフォルトの名無しさん [2015/09/02(水) 21:43:47.52 ID:+Iu6xlmH.net] Stateは離散的な状態によって、振る舞いを大きく変えるオブジェクトを実装するためのパターン Strategyは動的に処理を切り替える為のパターンで、ぶっちゃけただの多態性の事だ Strategyは基本的すぎてパターンと呼ぶほどのものではない 他の殆どのパターンでも漏れなくStrategyを使っている
808 名前:デフォルトの名無しさん [2015/09/02(水) 22:24:38.83 ID:2IVkMjjH.net] stateなんてstrategyを外か内のどっちから差し替えるぐらいの違いしかないし、デザインパターンとか偉そうに呼ぶもんでもない。 むしろ、switchで済むもんをstateパターン!とかドヤ顔でやるやつを生み出すクソパターンのひとつだわな。
809 名前:デフォルトの名無しさん mailto:sage [2015/09/02(水) 23:16:57.02 ID:OPX/Zhtw.net] デザパタって、 ○○パターンで行こう、みたいなときもあれば 書いたあとに、あれ?これ△△パターンだな……みたいなこともあるし 参考程度でいいんでないかい?
810 名前:デフォルトの名無しさん mailto:sage [2015/09/02(水) 23:21:25.69 ID:ZlVQUP4Q.net] デザパタってのは本読んで賢くなったと勘違いしたバカが ことあるごとにパターン名連呼するだけのもの
811 名前:デフォルトの名無しさん mailto:sage [2015/09/02(水) 23:22:34.56 ID:AIAHCYFs.net] >>798 2ch脳全開だなw よくそういう被害妄想を恥ずかしげもなく開陳できるよなw
812 名前:デフォルトの名無しさん mailto:sage [2015/09/02(水) 23:32:33.81 ID:nxxrL6I9.net] しかし、>>798 の解釈のほうが少しだけ健全 デザパタを知ったように語る連中にくらべての話なw
813 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 09:12:04.06 ID:BI1c3JMp.net] デザインパターンは共通言語みたいなもんだろ。
814 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 09:31:49.44 ID:j51sLT8G.net] 俺の周りのやつにはデザインパターンが通じない
815 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 10:45:14.16 ID:AQrjy02M.net] >>798 デザパタってそういうもんじゃないの 〜パターンって言うだけでああ、あれねってなるから いちいち詳細説明の手間(タイムコスト)が省ける
816 名前:デフォルトの名無しさん [2015/09/03(木) 12:50:32.25 ID:UAzBQfVm.net] まず、手間(タイムコスト)とか言い直す無駄な手間かけるのやめろよ
817 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 12:54:06.21 ID:Z05hlE1P.net] >>804 小学生か。 俺は802じゃないけど、そういうのは無駄でも言い直しでもない。 曖昧さを減らすためのテクニックだ。 ヴァカじゃないのか
818 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 13:00:22.16 ID:Mtr7VddV.net] そこまでのもんかよw
819 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 13:02:50.82 ID:NQZSp0fr.net] 命令口調君って馬鹿だな
820 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 13:03:00.42 ID:bflO1psv.net] (言い争いも無駄なのでは?)
821 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 13:18:47.27 ID:6M6obrOu.net] >>804 クスッときたw なぜなら俺も同じ感想を抱いていたからw
822 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 15:37:10.76 ID:dGS6eFW0.net] >>796 逆だろ むしろ、stateパターンで書けるもんをswitchとかドヤ顔でやるやつを生み出さないためのパターンのひとつ。
823 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 15:43:23.59 ID:eSbMz5iN.net] stateはあまり使うべきではないパターンの一つだろ オブジェクトに変化する状態を持たせるのはなるべく避け、どうしても必要なところはなるべく明示的に、ってのが今風
824 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 16:18:18.81 ID:Z05hlE1P.net] まあどっちにしろ馬鹿の一つ覚えの乱用は良くないね。 ケースバイケースで判断するしかない
825 名前:デフォルトの名無しさん [2015/09/03(木) 20:51:50.87 ID:AjZjPQkB.net] 質問させてください。 フォームを透明にするとデスクトップが見えると思います。 さらにラベルを半透明にすればデスクトップが透けて見えると思います。 ですが、ラベルを半透明にしてもフォームの透過色になってしまいます。 これの解決策はないでしょうか。
826 名前:デフォルトの名無しさん [2015/09/03(木) 20:53:39.88 ID:50OgoD3Z.net] ステートはゲームとパーサー以外に使い道はないね
827 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 21:26:51.16 ID:4OSMUinY.net] >>814 お前の狭い井戸の中の話はチラシの裏にでも書いとけ
828 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 21:30:09.14 ID:Mtr7VddV.net] >>813 ふらっと行け
829 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 21:36:44.84 ID:t0UOlUCH.net] とかくカタログ化のメリットをうたわれるが それは理想でしかない デザパタの理解の時点で不備が残るから パターン名を出して語り合ってもチグハグなまま 断片的な理解で語って延々すれ違うのが関の山
830 名前:デフォルトの名無しさん [2015/09/03(木) 21:37:48.99 ID:AjZjPQkB.net] >>816 すみません、初心者なのですが、フラットとはなんでしょうか
831 名前:デフォルトの名無しさん [2015/09/03(木) 21:59:03.17 ID:AjZjPQkB.net] >>818 >>816 フラットがなにか分かりました、聴いてきます、ありがとうございます
832 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 22:30:08.90 ID:oJAsYsjQ.net] >>811 これどういうこと? むしろifとかswitch推奨ってこと?
833 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 22:35:31.33 ID:4OSMUinY.net] >>820 まともなソフト組んだことのない奴の戯れ言なのでスルーでいい
834 名前:デフォルトの名無しさん [2015/09/03(木) 22:59:38.02 ID:UAzBQfVm.net] 10個のケースで処理は単純と 2個のケースで処理が複雑の場合どちらもクラス化するとは限らないし、switchでも関数でもオブジェクトでも見通しがいいのを選べばいい。 なぜなら、テストがあれば容易に修正が可能だからだ。
835 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 23:07:40.59 ID:8yoLLFnu.net] >>820 最近は関数型からの流れで、クラスはイミュターブルにするべきだという流派が勢いを増しつつある その考えに従うなら、stateパターンだろうがifだろうが自分自身のstateを勝手に変更するようなクラスは好ましくなくて、 差し替えやすくするにしてもコンストラクタでStrategyを渡しなさい、となるわけ それからStrategyに比べてStateはその親が持ってる内部情報に強く依存することが多いので、 差し替えのメリットはあまりなくてコードが読みにくくなるだけの場合が多かったりする
836 名前:デフォルトの名無しさん [2015/09/04(金) 01:05:37.68 ID:lzz57wGL.net] スイッチけ消せ派の二割ぐらいがコードの見やすさ以外のメリットを挙げられない日本のアイテー産業界の実情
837 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 09:18:55.15 ID:nWrrDgsE.net] >822 テストは製品の品質を担保するためのものだろ 修正の容易さとは関係ない
838 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 12:00:23.91 ID:UHAkjTxW.net] >>825 マジで言ってんのか?
839 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 12:21:37.40 ID:jQreaVPT.net] 通りすがりの俺も>>826 と同じセリフを吐きたい
840 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 12:24:18.11 ID:uljmVnmx.net] >>825 リファクタリングは名著だから一回くらい目を通しておいたほうがいいぞ
841 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 12:26:25.43 ID:/OouKiwm.net] まあ低レベルなジャパニーズドカタとって自動テストを継続的に維持するのは不可能だからね 後々の修正以前に、新規開発を最期までグリーンを維持しながら完遂することすら奇跡
842 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 12:28:22.50 ID:wAnp+SYa.net] 旧石器時代レベルのマだな
843 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 12:29:33.09 ID:wAnp+SYa.net] テストを検収通すためのエビデンスとしか捉えてないっていうね
844 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 00:34:41.72 ID:AEZT9dHU.net] テストはあくまで修正の確認だろ テストがあれば結果が保証される=安全な修正の場が提供される=修正がしやすい場が提供される けれど、修正元のコードが容易に修正しやすいものかとは別問題でしょ 何だか、根本的に履き違えているみたいだな、俺が 勉強し直してきます。 顔真っ赤なんです。分かってください。 場違いなんでこれで最後にします
845 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 00:37:38.28 ID:FwcsIAPo.net] >>832 動いてるものを弄ることの恐ろしさを知らないだろ 修正なんて結果の保証ができるかが全てと言っても過言ではない
846 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 00:45:48.20 ID:AEZT9dHU.net] >833 そういってるんだけど 噛みつき方がおかしい
847 名前:デフォルトの名無しさん [2015/09/05(土) 01:21:45.82 ID:+/wEUIWT.net] テストケースが用意してあって、いくら修正しても結果が合わないコードとか遭遇してみたいわ
848 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 06:31:10.03 ID:Jq+GEKLJ.net] >>803 タイムコスト削減どころか患者扱いされるパターンが一般的 peace.2ch.net/test/read.cgi/tech/1441012744/133-142
849 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 07:44:13.00 ID:FwcsIAPo.net] >>834 修正作業≒影響範囲と結果の確認作業 ということだよ ソースコードの修正そのものは大した問題ではない
850 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 10:07:42.28 ID:McuB2/kQ.net] >>832 修正って一言で言うからおかしくなる 1. 修正する箇所の決定 2. コードの修正 3. 修正箇所のテスト 4. リグレッションテスト 1. 〜 2. を修正って言えば >>825 1. 〜 4. なら >>822 が正しい
851 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 10:29:22.47 ID:yNAOhLZf.net] そんな必死扱いて話続けるなよ ショックだったのか?
852 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 11:28:54.82 ID:McuB2/kQ.net] >>839 >>839 粘着してるのはお前だけ
853 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 11:40:46.30 ID:nF0Xae6t.net] ITドカタには3,4が存在しないから同じ 問題なのは 5.リリース後に修正ミスが見つかるリスク
854 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 11:43:57.82 ID:yNAOhLZf.net] そうかい これ以上続けるならDisposeと同じように連投自演で荒らしてやる 分かったらおとなしくしてろ
855 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 11:49:32.74 ID:yNAOhLZf.net] あるいはC#に関係があって、ふらっとでやるような話でない話をしろ 雑談がしたければ雑談スレかマ板に行け
856 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 12:04:12.51 ID:d+nPX/+M.net] 命令口調指摘厨 ↓
857 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 12:05:53.42 ID:9PP8hJsT.net] ┃↑ ┗┛ 荒らしは去れ はよ仕事さがせよ
858 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 12:14:46.00 ID:ZNHlex0/.net] 「命令口調君って馬鹿だな」さんは、そろそろこのスレ10年近い大ベテランだぞ。 昨日今日現れたようなぽっと出の若造と一緒にしていい存在ではない。
859 名前:デフォルトの名無しさん [2015/09/05(土) 12:41:58.24 ID:d+nPX/+M.net] んじゃ質問おねしゃっす 静的クラスと普通のクラスをstaticに持つのと、 どう使い分けしたらいいでしょうか。 べつにシングルトンにする必要はないオブジェクトですが、 プロセスではひとつしかインスタンス化しません。
860 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 12:47:44.60 ID:+EPImSa2.net] 質問をお願いします、だと?!
861 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 12:48:22.79 ID:pfZ6OLhC.net] >>847 >普通のクラスをstaticに持つ ってどういう意味?
862 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 12:49:23.73 ID:dHzp+WDi.net] 一般的には、アプリケーションのルートで普通にnewし、それを必要とするクラスにその都度渡すのが適切 全体で共有するからといってstaticでグローバル変数にしてしまうのは良くない テストしにくくなるからね
863 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 13:35:50.94 ID:d+nPX/+M.net] ご説ごもっとも でも今回はstaticにします。 static class Hoge{} or class Hoget{} ... public static Hoge hoge = new Hoge(); 下の方が拡張性があるとかないですか
864 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 13:41:33.34 ID:5uKQXugM.net] 俺にはそれらが比較する物に見えない
865 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 14:08:16.36 ID:trE2W9oi.net] >>851 毎回直接hogeにアクセスするなら拡張性はない 拡張性をもたせるなら、Hogeにインターフェイスを実装して、他のクラスはそのインターフェイスを通して利用するようにする 実際のHogeのインスタンスは外から渡す
866 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 15:14:06.63 ID:OLenB+FK.net] 849みたいな馬鹿はどうしようもない クラスの持つ概念が何かを考えずに、 コンパイル通るかしか考えないんだろう