JAVA中实现链式操作(方法链)的简单例子

时间:2022-12-16 00:54:50 

在使用jQuery时候,我们经常会看到或者使用到方法链,例如:


$("#p1").css("color","red").slideUp(2000).slideDown(2000);


这段代码的意思是选择器选择id为p1的html标签,颜色变红,之后slideup,再slidedown。

自然是可以将这几个方法分开写,但是不分开的话不仅有很好的易读性,代码量也会有减少,那么何乐而不为?
这种调用函数的方式在jQuery中称为“Chaining”,原理也很简单:能够chaining的方法调用后返回对象本身即可。

下面用java代码做个演示:

不使用chaining:

Persion.java:


public class Persion {
    private int id;
    private String name;
    private String phoneNumber;
    private String address;
    public  Persion() {

    }
    public void setId(int id) {
        this.id = id;
    }
    public void setName(String name) {
        this.name = name;
    }
    public void setPhoneNumber(String phoneNumber) {
        this.phoneNumber = phoneNumber;
    }
    public void setAddress(String address) {
        this.address = address;
    }
    public void printId() {
        System.out.println(this.id);
    }
    public void printName() {
        System.out.println(this.name);
    }
    public void printPhoneNumber() {
        System.out.println(this.phoneNumber);
    }
    public void printAddress() {
        System.out.println(this.address);
    }
}
Test.java:


public class Test {
    public static void main(String[] args) {
        Persion persion1 = new Persion();
        persion1.setId(3);
        persion1.setName("John");
        persion1.setPhoneNumber("1111111");
        persion1.setAddress("US");
        persion1.printId();
        persion1.printName();
        persion1.printPhoneNumber();
        persion1.printAddress();
    }
}


使用chaining:

Persion.java:


public class Persion {
    private int id;
    private String name;
    private String phoneNumber;
    private String address;
    public  Persion() {

    }
    public Persion setId(int id) {
        this.id = id;
        return this;
    }
    public Persion setName(String name) {
        this.name = name;
        return this;
    }
    public Persion setPhoneNumber(String phoneNumber) {
        this.phoneNumber = phoneNumber;
        return this;
    }
    public Persion setAddress(String address) {
        this.address = address;
        return this;
    }
    public Persion printId() {
        System.out.println(this.id);
        return this;
    }
    public Persion printName() {
        System.out.println(this.name);
        return this;
    }
    public Persion printPhoneNumber() {
        System.out.println(this.phoneNumber);
        return this;
    }
    public Persion printAddress() {
        System.out.println(this.address);
        return this;
    }
}
Test.java:


public class Test {
    public static void main(String[] args) {
        Persion persion1 = new Persion();
        persion1.setId(3).setName("John")
                .setPhoneNumber("1111111").setAddress("US");
        persion1.printId()
                .printName()
                .printPhoneNumber()
                .printAddress();
    }
}



好诡异的感觉~哈哈!

标签:JAVA,链式操作,方法链
0
投稿

猜你喜欢

  • android 网络编程之网络通信几种方式实例分享

    2022-01-05 14:23:39
  • 关于工厂方法模式的Java实现

    2021-12-20 18:06:13
  • spring的jdbctemplate的crud的基类dao

    2022-05-30 13:05:17
  • Android实现录音方法(仿微信语音、麦克风录音、发送语音、解决5.0以上BUG)

    2023-02-27 09:48:51
  • SpringBoot深入了解日志的使用

    2023-01-06 15:40:34
  • java实现银行ATM管理系统

    2023-10-30 14:50:51
  • android 之Spinner下拉菜单实现级联

    2023-01-24 04:15:45
  • Android实现层叠卡片式banner

    2023-03-04 03:57:08
  • java取两个字符串的最大交集

    2021-07-30 17:23:08
  • java旋转二维数组实例

    2021-07-04 05:39:48
  • 详解SpringBoot注册Windows服务和启动报错的原因

    2022-12-28 17:10:09
  • C#实现只运行单个实例应用程序的方法(使用VB.Net的IsSingleInstance)

    2023-06-16 07:54:29
  • Taro打包Android apk过程详解

    2022-01-31 02:55:27
  • java 如何给对象中的包装类设置默认值

    2022-02-09 21:04:08
  • SpringBoot2.0解决Long型数据转换成json格式时丢失精度问题

    2022-10-31 16:56:24
  • SpringBoot中的PUT和Delete请求使用

    2022-01-22 19:33:32
  • Java class文件格式之数据类型(二)_动力节点Java学院整理

    2022-06-26 02:15:45
  • 设计模式系列之组合模式及其在JDK和MyBatis源码中的运用详解

    2022-12-27 12:56:57
  • C语言实现餐饮管理系统

    2023-03-26 06:40:37
  • Spring容器中添加bean的5种方式

    2023-03-23 03:03:15
  • asp之家 软件编程 m.aspxhome.com