使用内部类写的一个简单回调

来源:互联网 发布:淘宝客返利是什么 编辑:程序博客网 时间:2024/04/30 07:18

使用总结:

当很多地方用到相同的逻辑代码,而只是其中的一点点地代码不一样的时候,此时可以使用回调的思想。将该段相同的代码提出,写一个虚方法实现代码中不同的地方。

比如下面的例子,所有学生都要输出学生信息,学校,专业都一样,只有studentName处不一样。可以写一个虚方法,每个学生都要实现这个方法输出自己的名字,而不用写重复的学习和班级。

 public abstract class studentName ();

基类

package testT;public class BaseStudent {    // 方式一    public void printMessage(String name, studentName sn) {        System.out.println("JiangSu Normal University");        System.out.println("Software Engineer");        System.out.println(sn.callback(name));    }    public abstract class studentName {        abstract String callback(String name);    }    // 方式二    public void print2(String name, studentName2 sn) {        sn.execute(name);    }    public abstract class studentName2 {        public void execute(String name) {            String a = "aaa+";            System.out.println("JiangSu Normal University");            System.out.println("Software Engineer");            System.out.println(callback(name));        }        abstract public String callback(String name);    }}

hh

使用基类:

package testT;public class Student extends BaseStudent {    private String bb = "bb";    public void printChristina() {        printMessage("Christina",new studentName() {            @Override            String callback(String name) {                return name;            }        });    }    public void printAdrian() {        print2("Adrian", new studentName2() {            @Override            public String callback(String name) {                return bb + name;            }        });    }    public static void main(String[] args) {        Student s = new Student();        s.printChristina();        s.printAdrian();    }}


0 0
原创粉丝点击