0

对不起问题标题。我很难用语言来表达这一点。我什至不知道你怎么能称呼我在做什么。我很感激编辑。
请看看我的例子。
我喜欢第一个示例,它是单行中的简单调用。另请注意:BasicJokeGenerator由 GoodJokeGenerator 使用。拆分的原因是,课程都已经很长了。
第二个示例允许您GoodJokeGenerator#generate()独立测试BasicJokeGenerator并且感觉更干净。

class JokePrinter{
    printJoke(){
        System.out.println(GoodJokeGenerator.generate(String topic));
    }
}

class GoodJokeGenerator{
    String generate(String topic){
        String joke = BasicJokeGenerator.generate(topic);
        // ... some logic to make it really good
        return joke;
    }
}

或者

class JokePrinter{
    printJoke(){
        String basicJoke = BasicJokeGenerator.generate(topic);
        System.out.println(GoodJokeGenerator.generate(String basicJoke));
    }
}

class GoodJokeGenerator{
    String generate(String joke){
        // ... some logic to make it really good
        return joke;
    }
}
4

2 回答 2

4

好吧,我肯定会使用接口继承,这两个是 OOP(面向对象编程)中非常强大的工具,你应该知道它们

糊盒

于 2013-09-11T08:12:55.137 回答
1
    class JokePrinter{
        printJoke(){
            GoodJokeGenerator joke = new GoodJokeGenerator();
            String newJoke = joke.generate();
            System.out.println(newJoke);
        }
    }

class GoodJokeGenerator extends BasicJokeGenerator{
    String generate(String joke){
        String basicjoke = super.generate(joke);
        // ... add some spice to basic joke 
        String newJoke = basicJoke + addedSomeLogicalSpice;
        return newJoke;
    }
}

我会以这种方式实施。

于 2013-09-11T08:45:46.547 回答