オプションの伝え方

0

    Blog をオートパイロットして必要箇所だけ抜き出すプログラムの話。 このプログラムは Java で書いてあるので、以後、そういう前提で進める。

    構造を簡単に説明すると、まず GetBlog というクラスがある。 それぞれの blog に対応した機能は、これを継承して実装する。

    GetBlog には各オプションに対応した setter、getter が用意されていて、 オプションを解釈したらそれが呼び出される。 例えば、新規記事だけファイルを作成するという場合に、 -new というオプションで起動すれば、 GetBlog.isNewOnly() が true を返すようになる。

    さて、GetBlog は、各 blog の毎月のアーカイブを get して、 その内容を parse しながら分割する。 そのためのクラスは SplitMessages というのだが、 GetBlog 内で SplitMessage のインスタンスを作り、 メソッドを呼び出す、という流れになっている。 ということは、-new で指定されたオプションを渡さなければならない。 実際、各月のアーカイブを get して parse する処理は、 こんな感じになっている。

        protected boolean getMonthlyPage(int year, int month) {
            GetMonthlyPage gmp = new GetMonthlyPage();
    				
            gmp.setBaseUriString(getBaseUriString());
            gmp.setDirName(getTmpDirectory());
            if (gmp.getPage(year, month) == false)
                return false;
    		
            String fileName = gmp.getSaveFileName(year, month);
            SplitMessages sm = new SplitMessages();
    		
            sm.setBaseUri(getBaseUriString());
            sm.setTargetFileName(fileName);
            sm.setDirName(getResultDirectory());
            sm.setTmpDirName(getTmpDirectory());
            sm.setEncodeString("euc_jp");
            sm.setCallback(getCallback());
            sm.setNewOnly(isNewOnly());
    		
            return sm.split();	
        }
    

    どこがイヤかというと、パラメータの引き継ぎ方で、

            sm.setNewOnly(isNewOnly());
    

    こんな感じの処理がぞろぞろ出てくるのがイヤ。 修正が入って何か引き継ぐ情報が増える毎に1行ずつ増えることになる。 こういう場合はオプションを伝えるために、 オプションのクラスを用意しておいて、それを引き渡せばいいのだ。

    とか書いているうちに4時になりそうなので(それで?)、 ここで一旦書き込む。


    | 1/1PAGES |

    PR

    calendar

    S M T W T F S
         12
    3456789
    10111213141516
    17181920212223
    24252627282930
    31      
    << March 2024 >>

    selected entries

    categories

    archives

    recent comment

    recent trackback

    links

    profile

    search this site.

    others

    mobile

    qrcode

    powered

    無料ブログ作成サービス JUGEM