邪恶的Java帝国是怎么欺负小函数的?
作者:网友投稿 时间:2019-04-29 21:21

1
小函数的运气不好,投胎到了邪恶的Java帝国,一出生就被告知了自己的悲惨地位,以及未来的悲惨人生:奴隶。
确切地说,是类的奴隶。
在Java帝国, 国王特别喜欢“类”, 不待见“函数” , 他的法令规定:“类”是帝国的一等公民,“函数”则是类的奴隶。没有类的跟随和陪伴,函数绝对不能单独出行,否则立刻打入死牢。
小函数很快就体会到了这句话的含义。按照惯例, 新出生的函数,第一项工作就是输出Hello World 。
小函数心想,不就是 System.out.println("Hello Wolrd!") 嘛?等他兴冲冲地去执行的时候,发现有个趾高气扬的类HelloWorld在那里等着。
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
在Java帝国,没有函数是能单独存在的,必须依附一个类才可以,简单如Hello World也不行。
2
日子过了一天又一天,小函数一直被类欺负,作为奴隶,他自然无法反抗。
在苦闷的日子里,小函数见识了越来越多的类,他发现有些类确实挺有用的,他们有字段,有方法,可以把状态和操作封装到一起,让别人调用。
小函数特别喜欢多态, 因为当你调用父类或者接口的方法时,实际执行的却是子类的方法,这个神奇的魔法让小函数非常着迷。
小函数对设计模式也颇有好感,他看到人类把不变的东西抽象成接口,然后针对这些接口编程,把这些接口组合,变换,传递,真是让人眼花缭乱。光看代码, 你根本都不知道哪个类会被调用,谜底总是在最后一刻执行的时候才能揭开。
但是小函数也发现有些类也确实太过分了,有一次他遇到三个类,使用的是Strategy模式:
public interface Strategy {
public int execute(int num1, int num2);
}
public class Add implements Strategy{
@Override
public int execute(int num1, int num2) {
return num1 + num2;
}
}
public class Substract implements Strategy{
@Override
public int execute(int num1, int num2) {
return num1 - num2;
}
}
public class Context {
private Strategy strategy;
public Context(Strategy strategy){
this.strategy = strategy;
}
public int executeStrategy(int num1, int num2){
return strategy.execute(num1, num2);
}
}
小函数觉得非常不爽,长期以来的压迫让他瞬间爆发,他大声喊道:“这样没有状态的类有什么存在的价值?为什么不能把add, subtract函数作为参数来传递呢?为什么我们函数一直被你们‘类’压迫,为什么不能成为一等公民?”




