`

java 回调 广义上的回调其实是一种设计模式

    博客分类:
  • java
阅读更多
public interface IFilterMethod {
    
    List<UserModel> doCallFilter(UserModel userModel);

}

 

public class UserModel implements Serializable {

    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    private String userName;

    private String password;

    private String address;

    private String type;

    private String role;
    
    public UserModel() {}
    
    public UserModel(String _userName,String _password) {
        this.userName = _userName;
        this.password = _password;
    }
    
    public UserModel(String _userName,String _password,String _address) {
        this.userName = _userName;
        this.password = _password;
        this.address = _address;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getRole() {
        return role;
    }

    public void setRole(String role) {
        this.role = role;
    }

    @Override
    public String toString() {
        return "userName = " + userName + ",password = " + password + ",type = " + type + ",address = " + address + ",role = "
               + role;
    }

 

public class ModelLogic {
    public static void main(String[] args) {
        IFilterMethod filterMethod = new IFilterMethod() {
            @Override
            public List<UserModel> doCallFilter(UserModel userModel) {
                List<UserModel> list = new ArrayList<UserModel>();
                if (null != userModel) {
                    if (null == userModel.getAddress()) {
                        list.add(new UserModel("hello1", "world1"));
                        return list;
                    } else {
                        list.add(new UserModel("hello2", "world2", "address2"));
                        list.add(new UserModel("hello3", "world3", "address3"));
                        return list;
                    }
                }
                return null;
            }
        };

        first(filterMethod);
        second(filterMethod);
    }

    public static void first(IFilterMethod filterMethod) {
        UserModel userModel = new UserModel();
        userModel.setUserName("hechuan");
        userModel.setPassword("password");

        List<UserModel> doCallFilter = filterMethod.doCallFilter(userModel);
        for (UserModel model : doCallFilter) {
            System.out.println(model);
        }
    }

    public static void second(IFilterMethod filterMethod) {
        UserModel userModel = new UserModel();
        userModel.setUserName("hechuan");
        userModel.setPassword("password");
        userModel.setAddress("hangzhou");

        List<UserModel> doCallFilter = filterMethod.doCallFilter(userModel);
        for (UserModel model : doCallFilter) {
            System.out.println(model);
        }
    }
}

 

分享到:
评论

相关推荐

    回调函数 windows系统的消息与事件

    这种方式本质上是一种广义上的回调机制,因为窗口过程函数是由操作系统在特定条件下调用的。 - **事件处理**:类似于消息机制,事件也是Windows系统中的一种重要通信机制。事件可以由硬件设备触发,也可以由软件触发...

    java求矩阵的广义逆

    在Java编程语言中,求矩阵的广义逆(Generalized Inverse)是一个常见的数学运算,特别是在处理线性代数问题时。矩阵的广义逆,也称为Moore-Penrose逆,是对于非方阵或者奇异矩阵的一种逆矩阵扩展。在实际应用中,...

    回调函数详解(从根本上理解消息与事件)

    这分明也是一种回调,或者说是一种广义回调。 在实际应用中,回调函数和消息机制的结合使用可以实现更多的功能。例如,利用消息也可以构成狭义回调。通过 sendMessage 函数向指定窗口发送消息,收到消息方负责比较...

    Java与模式

    《Java与模式》一书由阎宏博士撰写,由电子工业出版社出版,是一部深入探讨Java编程语言与设计模式之间关系的著作。该书不仅涵盖了设计模式的基础理论,还结合了丰富的实践案例,旨在帮助读者理解和掌握如何在Java...

    设计模式分享会

    - **广义设计模式**:指的是能够解决一类软件问题并能重复利用的设计方案。它不仅仅局限于类和对象层面,还包括更广泛的软件架构和系统设计策略。 - **狭义设计模式**:特指在类和对象层次上描述的、能够解决特定...

    广义表算法设计

    根据给定的信息,我们可以深入探讨有关广义表的数据结构及其相关算法的设计与实现。广义表作为一种树形数据结构的特殊形式,在计算机科学领域有着广泛的应用。本文将围绕广义表的基本概念、创建方法、深度计算、长度...

    广义表运算问题课程设计

    广义表是一种特殊的数据结构,它允许元素自身也可以是列表,这种结构在计算机科学中常用于表示复杂的数据关系。在本次课程设计中,你需要实现一系列针对广义表的操作,包括建立、查找、输出、取表尾、求深度和求逆表...

    广义表 广义表是另一种推广形式的线性表是一种灵活的数据结构在许多方面有广泛的应用PPT课件.pptx

    广义表是一种灵活的数据结构,它是线性表的推广形式,在计算机科学中有着广泛的应用。线性表是由相同数据类型的原子项构成的有限序列,而广义表则允许序列中的元素不仅包括原子,还可以是其他广义表,这使得它能够...

    一种新型广义交叉耦合滤波器的设计

    一种新型广义交叉耦合滤波器的设计,描述了如何通过耦合矩阵,以及HFSS仿真软件来进行滤波器设计

    数据结构与算法,JAVA版,对广义表进行取表头,取表尾,判空,长度,深度,插入,删除第i个元素,删除广义表的所有元素。

    在计算机科学领域,广义表是一种重要的线性数据结构,它由一系列元素组成,其中每个元素可以是单个的数据项(原子),也可以是另一个广义表。这种嵌套结构使得广义表能够灵活地表示各种复杂的数据结构。 #### 二、...

    数据结构广义表实现二叉树

    具体实现上,二叉树的每个节点可以看作是一个广义表的项,其中: - 节点的值作为广义表的 head。 - 左子树作为 tail 的第一个元素,如果存在的话。 - 右子树作为 tail 的第二个元素,如果存在的话。 例如,假设...

    java第归与广义表.ppt

    第归与广义表

    【Java项目】基于servlet的商品进销存售系统(源码+设计模式类图)

    此项目为Java语言设计,基于Servlet,是一个商品进销存售系统,具有丰富的功能界面设计,文件包含项目工程源码及设计模式类图。具有基础的增删改查、下订单、存储、核算以及售卖功能,较好的实现了生活中商品进销存...

    c++实现广义表的应用

    在计算机科学领域中,广义表(Generalized List)是一种重要的数据结构,它可以存储复杂的树形结构数据。C++语言是实现广义表的不二之选。本资源将详细介绍如何使用C++语言实现广义表的应用,包括建立广义表、输出...

    广义表-数据结构课程设计

    由于广义表中的数据元素可以具有不同的结构,(或是原子,或是列表),因此难以用顺序存储结构表示,通常有采用链式存储结构,每个数据元素可用一个结点表示。由于列表中的数据元素可能为原子或列表,由此需要两种...

    广义表(数据结构的课程设计)

    广义表的的一般运算!包括了深度,逆表等运算!

    一种基于广义逆的机器学习新方法.pdf

    在此背景下,一种基于广义逆的机器学习新方法应运而生,其核心在于运用广义逆矩阵这一数学概念来优化机器学习算法,特别是针对单隐层前馈神经网络(Single Hidden Layer Feedforward Neural Network, SHLFFNN)。...

    广义表的二叉链式存储表示及其算法设计

    为此,本文提出了一种新的存储表示方法——广义二叉链表(GBLL),它是对广义链表的一种改进,旨在更好地支持广义表的推广和应用。 ##### 3.1 广义二叉链表的概念 广义二叉链表是一种特殊的链表结构,每个节点包含...

Global site tag (gtag.js) - Google Analytics