package com.csdn;
interface Animal {
void speak();
}
class Dog implements Animal {
@Override
public void speak() {
System.out.println("dog speak.");
}
}
class Cat implements Animal {
@Override
public void speak() {
System.out.println("cat speak.");
}
}
class Pig implements Animal {
@Override
public void speak() {
System.out.println("pig speak.");
}
}
public class NoIfElse {
// 比方说现在有个需求,
// 通过state状态来判断那种动物叫
// 0让狗叫,1让猫叫,2让猪叫
/**
* 方法1
*/
private void animalSpeak(int state) {
Animal[] animals = { new Dog(), new Cat(), new Pig() };
animals[state].speak();
}
/**
* 方法2,没有用到Animal接口
*/
private void animalSpeak2(int state) {
if (state == 0) {
new Dog().speak();
}
if (state == 1) {
new Cat().speak();
}
if (state == 2) {
new Pig().speak();
}
}
public static void main(String[] args) {
NoIfElse t = new NoIfElse();
int state = 1;
t.animalSpeak(state);
t.animalSpeak2(state);
}
}
java里减少if else的例子
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- Android中的工厂模式,目的就是减少if-else和switch-case的出现,梳理代码的条理,使逻辑更加清...
- 如何减少if else的使用? 在公司项目中常常看见很多if else让人很烦多的时候,会让你头疼。 接下来说说我...