java接口回调的解析

来源:互联网 发布:福建三千万美元知乎 编辑:程序博客网 时间:2024/03/29 09:29

(1)概念:

可以把使用实现了某一接口的类创建的对象的引用赋给该接口声明的接口变量,那么该接口变量就可以调用被类实现的接口的方法。实际上,当接口变量调用被类实现的接口中的方法时,就是通知相应的对象调用接口的方法,这一过程称为对象功能的接口回调。

(2)观察者模式

是将观察者和被观察的对象分离开, 当被观察的对象产生一定变化的时候, 观察者就会根据哪里产生的变化, 产生了变化, 而进行相应的处理.大部分观察着模式是用接口回调的方法来实现的.

(3)示例:

 

 

package com.accp.ven;
/**
 * 接口
 * @author Administrator
 *
 * @param <T>
 */
public interface  Selector<T> {
 /***
  * 过滤元素
  * @param t
  * @return
  */
public boolean filter(T t);
}

package com.accp.ven;

 

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class MySelector{

 /**
  *  通过指定的条件选择元素
  * @param array
  * @param sel
  * @return
  */
 public static<T> List<T> find(T[] array, Selector<T> sel){
  List<T> list = new ArrayList<>();
  for (int i = 0; i < array.length; i++) {
   if(sel.filter(array[i])){
    list.add(array[i]);
   }
  }
  return list;
  
 }
 
 /**
  * 测试
  * @param args
  */
 public static void main(String[] args) {
  String []  str = {"北京","天津","海口","张家港","香港"};
  List<String> list = MySelect.find(str, new Selector<String>() {

   @Override
   public boolean filter(String str) {
    return str.length()>2;
   }
  });
  
  for(String s : list){
   System.out.println(s);
  }
  
 }
 }

 

 

 

0 0
原创粉丝点击