|
国外的同事来国内出差,趁着这个机会,邀请他跟我们一起进行 code review......
公司的代码没办法拿出来,只能临时写个伪代码让大家鉴赏一下:
/**
* 代码鉴赏:执行 1 个任务
*/
public class JavaTasteSample {
public static void main(String[] args) {
// 国外同事:1 行代码就搞定,简洁明了
// ==(浪费了大量的时间在做过度设计,毫无意义的炫技)==
new Thread(() -> System.out.println("task1 running...")).start();
// 国内同事:高内聚低耦合,把具体要执行的任务跟线程进行分离,方便扩展......
// ==(这老外太 low 了,连设计模式都不懂,估计不会写代码)==
new Thread(new Task(new TaskInnerSupport())).start();
}
}
interface TaskInner {
void execute();
}
abstract class AbstractTaskInner implements TaskInner {
@Override
public void execute() {
runTask();
}
abstract void runTask();
}
class TaskInnerSupport extends AbstractTaskInner {
@Override
public void runTask() {
System.out.println("task2 running...");
}
}
class Task implements Runnable {
private TaskInner inner;
public Task(TaskInner taskInner) {
inner = taskInner;
}
@Override
public void run() {
inner.execute();
}
}
|