2007-05-11

汎用性と quick hack

http://anond.hatelabo.jp/20070511095003

こりゃ中途半端拡張性を意識した名残だろうね。fizz 変数の値で割り切れる場合は "Fizz" と表示して buzz 変数の値で割り切れる場合は "Buzz" と表示するようになってるわけだけど、これを少し発展させれば、適当なコンテナ container を準備して container[0].num で割り切れる場合は container[0].message を、container[1].num で割り切れる場合は container[1].message を……と続けていっていくらでも対応できるようになる。でも今回は適当にざっと作るのが目的だからこの状態になってしまったんだと思う。コンテナ方式の実現方法は色々考えられるのでご自由にどうぞ。ぼくはかんがえるのめんどくさい。

記事への反応 -
  • これはひどい。要件を理解してない。

    • public class FizzBuzz { private final int start; private final int last; private final int fizz; private final int buzz; public FizzBuzz(int start, int last, int fizz, int buzz) { this.start = start; this.last = last; this.fizz = fizz; this.buzz = ...

      • http://anond.hatelabo.jp/20070511005106 execute()メソッドがprivateなのって何でですか?

        • main() と同一クラス内にあって public にする必要が無いからじゃない? もちろん FizzBuzz が外部からも使用されるようなクラスなら execute() を public にする必要があると思う。

          • あ、なるほど。ありがとうございます。 ついでにもうひとつ聞いてみたいんですけど パラメータってなんでもかんでもメンバ変数にしてしまうのがclassの設計作法としてあるんですかね...

            • http://anond.hatelabo.jp/20070511095003 こりゃ中途半端に拡張性を意識した名残だろうね。fizz 変数の値で割り切れる場合は "Fizz" と表示して buzz 変数の値で割り切れる場合は "Buzz" と表示するよう...

        • 真の答えは、 new FizzBuzz().execute() と最初に書いてからEclipseのquick fixでメソッドを作っていったので、Eclipseが勝手にprivateにしてしまった。 です。

      • http://anond.hatelabo.jp/20070511005106 private boolean isMultiple(int i, int base) { if(i/base * base == i){ return true; } return false; } あ、CならisMultipleは#defineするから一行で済むんだが…。 こうか #define IS_MULT...

      • http://anond.hatelabo.jp/20070511005106 private boolean isMultiple(int i, int base) { if(i/base * base == i){ return true; } return false; } あ、CならisMultipleは#defineするから一行で済むんだが…。 どうして private b...

        • いくつか考えられるな まず、if で書いた方が可読性が高い、という考え方。まあでも一行で書いてもすぐわかる以上はよっぽどのアホが入るかも知れないプロジェクトで考慮するような...

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん