2007-05-11

http://anond.hatelabo.jp/20070511014839

あ、なるほど。ありがとうございます。

ついでにもうひとつ聞いてみたいんですけど

パラメータってなんでもかんでもメンバ変数にしてしまうのがclassの設計作法としてあるんですかね?

このプログラムの場合、startとlastは外部から与えられそうな値ですが

fizzとbuzzはどっちかというとロジック仕様として組み込まれている感じの値ですよね。

これが同じように並んでいることに、なんとなく気持ち悪い感じを受けるんですけど…(そもそもclassの設計が悪い?)。

割る数と割られる数と余りが0の時に返す文字列をプロパティに持って

割り切れるかどうかのチェックを行うメソッドと

割り切れないときには数字、割り切れる時には文字を返すメソッドをもつようなclassを作って

それに委譲するようにすればいいのかな?

記事への反応 -
  • ついでに作ってみた。Javaだお。 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....

    • これはひどい。要件を理解してない。

      • 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 で書いた方が可読性が高い、という考え方。まあでも一行で書いてもすぐわかる以上はよっぽどのアホが入るかも知れないプロジェクトで考慮するような...

    • Javaって変態さんなんですね☆ つーかバグってね?

    • public class FizzBuzz { public static class NumMessagePair { private final int base; private final String message; public NumMessagePair(int base, String message) { this.base = base; this.message = message; } public boolean isAliquot(int num) ...

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

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