5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

オブジェクト指向になってないJavaコードを晒せ!

1 :デフォルトの名無しさん:03/02/07 17:29
漏れのまわりにはJavaで書けばオブジェクト指向
でプログラム組んでると勘違いしてるヤシが
多すぎる。そんなコードを晒して、オブジェクト指向
プログラミングを勉強しなおそう!



2 :デフォルトの名無しさん:03/02/07 17:31
死ねキチガイ

3 :デフォルトの名無しさん:03/02/07 17:32
こちらにどうぞ。
http://pc.2ch.net/test/read.cgi/prog/1042017145/

4 :デフォルトの名無しさん:03/02/08 03:54
>>1 try-catchの使い方が下手な奴だろ。
main()にすべてのコードを実装する馬鹿とかだろ。

抽象クラスもインターフェースもまともに使えない馬鹿だろ

5 :デフォルトの名無しさん:03/02/09 16:53
System.out.print("( ´∀`)<");

6 :デフォルトの名無しさん:03/02/09 17:31
すべての変数やメソッドに
public static
をつけるだけでよし。

*** 終了 ***

7 :デフォルトの名無しさん:03/02/09 17:45
end

8 :デフォルトの名無しさん:03/02/10 01:06
public class XXX0010{
 private String x_value[1000];
 public String getValue(int x){
  return x_value[x];
 }
 public void setValue(int x, String value){
  x_value[x] = value;
 }
}
使用例
XXX0010 x = new XXX0010();
ResultSet rs = st.executeQuery("select * from T_510");
int i = 0;
while(rs.next()){
 x.setValue(i * 10, rs.getString("hogeID"));
 x.setValue(i * 10 + 1, rs.getString("name"));
 x.setValue(i * 10 + 2, rs.getString("birthday"));
 ...;
 1++;
}


9 :デフォルトの名無しさん:03/02/10 06:56
>>8

こりゃ、ひどい。が、ありそうなコードだ。

10 :デフォルトの名無しさん:03/02/10 06:59
>>8
笑える。そもそもこれ動かないし。


11 :デフォルトの名無しさん:03/02/10 08:02
Part 175 http://tv.2ch.net/test/read.cgi/bs/1044124488/
Part 176 http://tv.2ch.net/test/read.cgi/bs/1044165167/
Part 177 http://tv.2ch.net/test/read.cgi/bs/1044170176/

12 :デフォルトの名無しさん:03/02/10 23:15
>>8
おもしれ〜(爆藁

13 :デフォルトの名無しさん:03/02/11 00:27
趣味の問題だけど俺は自分のクラスにimplements ActionListenerする時点でもう気持ち悪い
comp.addActionListener(new ActionListener() {
  public void actionPerformed(ActionEvent evt) {
    compActionPerformed();
  }
} );
protected compActionPerformed() {
}

みんなコレに統一しれ

14 :デフォルトの名無しさん:03/02/11 00:53
>>13
.NETならdelegateで綺麗に書けるのに・・・なんて無様なんだろう

15 :デフォルトの名無しさん:03/02/11 01:05
>>14
まあ、匿名クラス使ってある程度ごまかせるんだけどね。

ちなみに、C# でも来年登場するバージョンから匿名デリゲートがかけるようになる。


16 :デフォルトの名無しさん:03/02/11 01:36
>>13
俺としては、無名クラスを使ってる時点で気持ち悪い。

17 :8:03/02/11 01:49
>>10
1++はi++の間違いです。堪忍して・・・

このコードですが、
また別のところでは配列の0〜100をまた別の目的に使ってたり、あるところでは
200番から使ってたり、しかもそれを規定するのがコメントだけだったりと、
見るもおぞましいことになってました。
ちなみにこれを書いたやつに
public class XXX000{
 private int hogeID;
 private String name;
...;
 public int getHogeID(){
  return hogeID;
 }
 public void setHogeID(int hogeID){
  this.hogeID = hogeID;
 }
 ...;
}
という風にしないかと言ったら「なんでそんな面倒なことをする必要があるんだ?」と
返されました。思わず絶句・・・。

18 :デフォルトの名無しさん:03/02/11 03:07
>>17
富士痛とかいったらそんなコードのほうが標準な気が..
ところで
String x_value[1000];
なんてJavaで書けたのか..

19 :デフォルトの名無しさん:03/02/11 09:44
本当に1000個必要なら、17より8のほうが良いな。

20 :デフォルトの名無しさん:03/02/11 09:45
本当に1000個必要なら、17より8のほうが良いな。
ValueObjectで、17やられたら1000往復ウマー

21 :8:03/02/11 10:47
>>18
(;゚Д゚)書けません・・・String[] x_value = new String[1000]でした。やべぇよ俺。
>>19
常に1000個必要な訳じゃないんです。使っている場所によっても違いますが、
実際に使っているのは多くてその半分くらいです。サイズは問題じゃないか。
だいたい、こんなことをしたいならこんなけったいなクラスを定義せず、
String[] x = new String[1000];
でいいと思うんですけどね。
ちなみに、上記のコードに初期化のメソッドはなく、使用する側で初期化するように
なってます。たとえばこんな風に。
for( int i = 0; i < 1000; i++ ){
 x.setValue(i, "");
}
上限を1000から変えたいときはどうするんだろうと思いました。

22 :デフォルトの名無しさん:03/02/11 15:10
>>8
>x_value
つーかこういうハンガリアン記法チックは汚いでしょ。

23 :デフォルトの名無しさん:03/02/11 15:20
>>4
>>8

中途半端なOOPより、そっちのほうがまだましかも。

機能を増やすときにあのクラスのオブジェクトの
あのメソッドを呼ばないといけないから・・・と
後先考えずに関連を増やされたJavaプログラムは
参照関係がぐちゃぐちゃで
書いた本人以外には理解不能なプログラム
だった。





24 :デフォルトの名無しさん:03/02/12 00:19
>>8
のようにするのは美しくないけど、実際にはコレで開発効率があがるのも事実
だいたいResultSetだって>>8のようになってんだし、これでいいと思うが

25 :8:03/02/12 01:24
>>23
悪いコードになるかどうかどうかと、オブジェクト指向か否かという
話は直行しているでしょ。
いいOOP=いい非OOP>そこそこのOOP=そこそこの非OOP>>>>>悪いOOP=悪い非OOP
>>24
こういう「手抜き」は、最初こそ楽に思えても、開発行程が進むにつれて
ボディブローのようにじわじわと効率を落としていくものだと思っている
んですが、違いますか?つか、前の仕事ではそう感じました。

26 :デフォルトの名無しさん:03/02/12 14:06
>>24

こういうコードはオブジェクト指向じゃないね。
クラスの責務なんかあったもんじゃないから。

ま、どこまでのコードがOOPであるかというのは
人によって見解はわかれるとおもうけど。

27 :デフォルトの名無しさん:03/02/13 00:17
>24
クラスはRDBのスキーマから生成して、ResultSetからBeanへの値設定処理は
リフレクションでやれば、そんなに面倒ではなくなります!
と主張してみるとか。だめ?


28 :デフォルトの名無しさん:03/02/13 16:08
JDBC使ってSQL文かいたコードってどうしてもきたなくなるような気がする。
とくに一つのメソッド内でコネクション確立、ログイン、クエリー実行、
データ取出しを同時にやっているコードは。

J2EE使ったほうがすっきりするんですかねぇ?

29 :デフォルトの名無しさん:03/02/15 00:29
>>1

差分プログラミングしてるコードじゃないの?

30 :デフォルトの名無しさん:03/02/15 00:54
>>28
軽い気持ちでJ2EEという言葉を口にしてはならない。

31 :デフォルトの名無しさん:03/02/23 23:16
>>1

オブジェクトを引数でわたすことばっかりやって
メッセージパッシングをうまくつかってないコード。

32 :デフォルトの名無しさん:03/02/24 18:37
>>31

具体例をだせ。

33 :OO厨 ◆ILBKrPMSho :03/02/25 08:03
オブジェクト指向になってないJavaって、何か問題をはらんでいるんだろうか。

これは、オブジェクト指向なJavaのコード
http://pc2.2ch.net/test/read.cgi/tech/1021881540/242-244


34 :デフォルトの名無しさん:03/03/01 13:05
オブジェクト指向は規模が大きくなったときに役に立つものなので、
33が示すような小規模なコードに適用しても無意味。
ちょっとしたテキストフィルタ程度ならOOでないほうがよっぽどいい。
8のあれって、テーブルの内容をコンソールに表示するだけのプログラムで使うなら
使い回しが効いて悪くないだろ。
問題なのは、大きい業務システムを非OOで乗り切ろうとする馬鹿野郎。
規模に応じて方法論を使い分けろってことだね。

35 :デフォルトの名無しさん:03/03/01 16:12
>>25
>こういう「手抜き」は、最初こそ楽に思えても、開発行程が進むにつれて
>ボディブローのようにじわじわと効率を落としていくものだと思っている
まったくその通り。
最初のうちは見かけ上サクサク進むんだけど、
ボリュームが増えてきたりあとで変更入ったりすると柔軟に対応できなくて、
自分の書いたコードすら理解できなくなって破綻するか(PGが出社しなくなるとか)、
パフォーマンスがことごとく落ちるか(受注会社がこんなものですと開き直る)になる。
そのような「手を抜かないで最初からしっかり作っておけばよかったのに・・・」
ってシステムの見直しを発注本から依頼されて、そういうのを何度も改善したことあるよ。
共通していえるいるのは、先のこと(保守性)を考えていないということ。
そのときだけ動きゃいいと思い込んでる。ある意味正しい教育を受けれなかったそのPG
もかわいそうなんだけど。

36 :デフォルトの名無しさん:03/03/02 05:07
>>31

言いたいことはわかる気がする。抽象データ型として
オブジェクトを使って、作り方は機能分割のプログラム
のことだろ?最初っからそう割り切って書いてくれるなら
まあ、それもいいとするが、本か何かで読んだのかしらんが
部分的にOOにやってるプログラムが一番たちが悪い。



37 :デフォルトの名無しさん:03/03/07 21:53
        
http://page5.auctions.yahoo.co.jp/jp/auction/e22909695         

ヤフオク出品したよ
1円スタートでマジお勧め!          

「10日でおぼえるJSP/サーブレット入門教室」翔泳社              



38 :デフォルトの名無しさん:03/03/07 22:23
あげ荒らし氏ね

39 :山崎渉:03/04/17 15:58
(^^)

40 :山崎渉:03/04/20 04:03
   ∧_∧
  (  ^^ )< ぬるぽ(^^)

41 :山崎渉:03/05/28 13:18
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉

42 :デフォルトの名無しさん:03/06/03 04:07
でも逆に非オブジェクトなコード書けといわれても
もう、難しいな俺には・・・
携帯アプリのソースって非OOなもの多いよな
いまはサイズ大きいから大丈夫か?

43 :デフォルトの名無しさん:03/06/03 19:44
そういえば、「Javaによる最新アルゴリズム事典」はオブジェクト指向らしさが欠けているな。
アクセス権がほとんどpublicでprovateやprotectedなメソッドやフィールドが殆どない。

もともとアルゴリズム教育やC言語やTeXが得意な学者が書いた本って感じだな。


44 :デフォルトの名無しさん:03/06/04 20:09
おれだとこうするんだがどうなんだろう?使い道次第だけど。。。
public class XXX0010data{
 private String hogeID,name,birthday;
 public String getValue(String hogeID,String name,String birthday){
  this.hogeID=hogeID;
  this.name=name;
  this.birthday=birthday;
 }
 public String getName(){
  return name;
 }
 ・・・各getter
}
使用例
Map x = new HashMap();
ResultSet rs = st.executeQuery("select * from T_510");
int i = 0;
while(rs.next()){
 XXX0010data data=new XXX0010data(rs.getString("hogeID"),rs.getString("name"),rs.getString("birthday"));
x.put(rs.getString("hogeID"),data);
}


45 :44:03/06/04 20:14
あと可変長の2次元配列とプリミティブ変数の配列の扱いでいつも悩むんだが、もまいら、どうしてらっしゃるのですか?
Listのネスト?
配列をListに収納?
List で入れて返すときに毎回2次元配列に変換?

プリミティブ変数の可変長配列は、
List a=new ArrayList();
a.add(new Double(0.1));
とかするのは出し入れが面倒だ。。

46 :デフォルトの名無しさん:03/06/20 03:33
>>1

直感的にOOになってないなーとはわかるが、
ここがこーだからといいにくいんだよねー。

ま、漏れの技術力が低いのが原因だとおもうが。
こういうのって技術雑誌とかに特集されてたりしないもんなの?

47 :_:03/06/20 03:35
http://homepage.mac.com/hiroyuki44/

48 :デフォルトの名無しさん:03/06/20 03:45
このスレって、>>27で結論出てる所が、なかなかイタイ。
んな、手で書かなくても済むコードのコーディング・スタイル気にしても、
しゃーないやん。(ツール生成コードを手でメンテさせる糞現場もあるらしいけど(w)

49 :デフォルトの名無しさん:03/06/20 04:35
えっつ、じゃぁ>>8のソースはあるツールから自動生成されたってことか?
誰だよこんな糞コード吐くツール作った奴は…

50 :デフォルトの名無しさん:03/06/20 04:37
何でそういう役にも立たない事書くかな・・・

51 :_:03/06/20 04:47
http://homepage.mac.com/hiroyuki44/

52 :48:03/06/20 04:48
>>49 早起きさんの小学生だな

53 :デフォルトの名無しさん:03/06/20 04:51
>>52
必死だなw

54 :デフォルトの名無しさん:03/06/20 05:05
>>53 死語の世界だなw

55 :デフォルトの名無しさん:03/07/05 21:28
age

56 :デフォルトの名無しさん:03/07/05 23:30
OOっていうか、>>8のコードってパフォーマンス、リソースに問題ない?


57 :デフォルトの名無しさん:03/07/06 14:05
>>8
カプセル化が充分にされていれば問題ありません
それを書き直す時間もありません

ツッパシレ!!

58 :8:03/07/06 23:46
>>56
問題ありまくりです。しかもこのインスタンスは
サーブレットコンテナのセッションに保持されるので、余計に…

59 :山崎 渉:03/07/15 10:08

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄

60 :うんこ:03/07/22 19:08
>>43
あー、その本俺も買った
確かに異常にstaticが多かった
でもアルゴリズムの説明にはあーいう組み方が一番適していると思いますよ
買って全く損してない、面白いし

61 :山崎 渉:03/08/02 02:56
(^^)

62 :デフォルトの名無しさん:03/08/09 10:35
おい、うんこ氏よ。
複素数の項を見たのだが
public double real;
public double imag;

public static Complex sin(Complex x){
 //略
}

となっている記述が気に入らなかった。
これじゃ「C言語による最新アルゴリズム辞典」のときの構造体
そのまんまや。

private double real;
private double imag;

getReal(){ return real; }
getReal(){ return imag; }

public Complex sin(){
 //略
}

になっていないのが気に入らなかった。

63 :山崎 渉:03/08/15 18:03
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン

17 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)