• 简单学懂链式编程


    简单学懂链式编程

    一句话定义

    链式编程是一种编程风格,它允许在同一个对象上通过多个方法的调用链实现一系列操作,从而简化代码,提高可读性,和代码的可维护性。

    一个流程看懂

    创建对象 -> 连续调用对象方法 -> 返回对象本身 -> 使用对象方法获取属性或执行其他操作

    示例

    public class Person {
        private String name;
        private int age;
        private String gender;
    
        public Person setName(String name) {
            this.name = name;
            return this;//返回this对象
        }
    
        public Person setAge(int age) {
            this.age = age;
            return this;
        }
    
        public Person setGender(String gender) {
            this.gender = gender;
            return this;
        }
    
        public String getName() {
            return name;
        }
    
        public int getAge() {
            return age;
        }
    
        public String getGender() {
            return gender;
        }
    
        public static void main(String[] args) {
            // 链式编程
            Person person = new Person()
                    .setName("张三")
                    .setAge(20)
                    .setGender("男");
    
            // 调用对象方法
            String name = person.getName();
            int age = person.getAge();
            String gender = person.getGender();
    
            // 输出结果
            System.out.println("姓名:" + name);
            System.out.println("年龄:" + age);
            System.out.println("性别:" + gender);
        }
    }
    

    在上面的代码中,我们

    1. 创建了一个Person类,并定义了setName()setAge()setGender()方法来设置对象的属性,并返回Person对象本身,以便实现方法调用链。
    2. 然后,我们使用链式编程的方式创建一个Person对象并连续调用setName()setAge()setGender()方法来设置对象属性,最终返回了一个已经设置好属性的Person对象。
    3. 最后,我们调用getName()getAge()getGender()方法获取对象的属性并输出。

    通过这个示例,可以看到链式编程的基本流程是:创建对象 -> 连续调用对象方法 -> 返回对象本身 -> 使用对象方法获取属性或执行其他操作。

  • 相关阅读:
    P2239 [NOIP2014 普及组] 螺旋矩阵
    ES6(ECMASript 6 新特性---Set,Map,class类)
    浏览器跨域
    六边形架构理解
    【python笔记】第六节 序列类型常用方法
    JavaEE - CORS跨域
    Promise及相关知识细学
    这个编辑器即将开源!
    最近带着江苏高校的学生做软件测试项目实战
    吐血整理一个月——终于把所有Python库整理齐了.....
  • 原文地址:https://www.cnblogs.com/salt-baked-universe/p/17330628.html