忍者ブログ

2007/03/04開始。ソフトウェア管理やDelerer SEの作者であるおにぎりくんの試行錯誤の記録です。
2024
前の月へ 10 : 123456789101112131415161718192021222324252627282930 : 12 次の月へ
14  15  16  17  18  19 
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

こんにちは。おにぎりくんです。

デザインパターンを学び終え、ソフトウェア管理の制作に入りました。春休みはもう少ししかないのですこし急いでいます。春休みには2.0を完成させたい!

というときに、壁にぶつかってしまったのです。java.util.LinkedListのIteratorを使って全部の要素を出力する部分で、add()したはずの要素がぜんぜん出てこないんです。いろいろ原因を探ったのですが、「何でadd()されないのか」という疑問に答えはありませんでした(もちろんGoogleさんも答えてくれず)。

そこで、GUIはあきらめてCUIに切り替えました。しかしここでも同じ壁が目の前に立ちはだかりました。。。そこでテストプログラムを書きました。

package test;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import cui.Genre;
public class ListTest {
 private List<Genre> list = new LinkedList<Genre>();
 
 public void add(String name) {
  Genre g = new Genre();
  g.setName(name);
  g.setPath("new soft path");
  list.add(g);
 }
 public void ls() {
  Iterator it = list.iterator();
  if(it.hasNext()){
   System.out.println(it.next());
  }
 }
}

CUIプログラムのコピペで作りました。あとはMainクラスからインスタンス化してテストしました。同じ現象がおきました。どこがいけないのでしょう。要素の型がGenre(自分で作ったクラス)だからでしょうか。よく見ると違いました。「add()されない」のではなく、「全要素を出力していない」でした。気づいたのは、list.size()の値でした。上のプログラムで、

  if(it.hasNext()){

となっているところを、

  while(it.hasNext()){

とすると、見事に壁をのりこえられました。よかった!・・・しょぼい凡ミスですねこれ(-_-)

PR

こんにちは。おにぎりくんです。

ブログ初体験で、少し戸惑っています(^-^;)以前から、ブログは自動でインデックスがついたりするので、便利そうだなとは思っていました。アクセス解析でお世話になっている忍者ファクトリーさんのブログで、やっとブログデビューです。

さて、今日はデザインパターンについての話です。デザインパターンとは、プログラミングにおいてよくあるコードを抽象化し、体系的にまとめたものです。そして23個のパターンをまとめたGoF(ギャングオブフォー)は有名で、彼らが書いたパターンがデザインパターンのなかで一番有名です。
デザインパターンにおいて頻繁に出てくるのは、抽象クラスとインターフェースでしょう。私は、以前はカプセル化については言葉を知っているくらいで実際にどのようにすればよいかは理解できていませんでした。今では、そのカプセル化には抽象クラスとインターフェースが結構重要な働きをするんだなということがわかってきました。
さて本題ですが、私の好きなデザインパターンは、TemplateMethodパターンです。なぜかといいますと、このパターンはカプセル化もいいのですが、個人的に気に入っているところが別にあるからです。それは、クライアントの要求する機能をいっぺんに作ろうとするのではなく、わかりやすい部分に切り分けて、ひとつひとつのメソッドを実装しやすくする点にあります。達成不可能な目標に向かうときにモチベーションはあがらないものです。TemplateMethodパターンでは、ほしい機能を部分に分けて、実装のやる気(と成功体験)を増やします。

今日はデザインパターンについて書きました。私はまだまだデザインパターン習得中です。習得したらソフトウェア管理の開発に入りたいと思います。春休み中にソフトウェア管理を公開したいなぁ…とっても便利なものになるはずなので。

スポンサード・リンク
フリーソフト指向::開発日記 by LapisCactus
忍者ブログ | [PR]

今日の聖書
自己紹介
名前:
LapisCactus (おにぎりくん)
Twitter:
Mail:
onigirikun_hsp@hotmail.com
自己紹介:
ふつうのしすてむえんじにあ。
趣味で「ソフトウェア管理」や
「TextView」を作っています。
仕事でもコンピュータを触っているのに
趣味も同じという。
健康に悪いですね。
カレンダー
10 2024/11 12
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
ブログ内検索
最新CM
[03/03 kusakari]
[11/12 おにぎりくん]
[11/08 れい]
アクセス解析