继承是为了复用,复用是为了减少冗余的代码,提高开发效率。
这次我讲继承,仅仅只是讲它在我开发中一个小小的应用,就是关于Controller日志打印。我们通常使用日志,要么是使用slf或者是log4j。
通常想在Controller打印对应的日志,需要添加如下代码:
private static Logger logger = Logger.getLogger(TestController.class);
但是如果是在每个类都要写这个,随着业务的增长,Controller只会越多不会越少,每个类都增加这段代码是不是太冗余了。
于是我们就利用Java的继承特性来解决这个问题。
既然这段代码都要用,那么我们可以通过编写一个抽象类来解决这个问题。
Java开发者们都知道,让普通类继承抽象类,不必复写对应的方法,由自行自主决定。
我个人编写的抽象类如下:
package com.controller; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public abstract class AbstractController { protected Logger logger = LoggerFactory.getLogger(getClass()); }
我对应的Java代码如下图:
如上利用Java的继承特性,便可以解决Controller日志代码段冗余问题。