请问下面的代码属于什么设计?为什么把set方法改成那样子
public class A{
private Integer num;
private String min;
public Integer gerNum(){
return num;
}
public A num(Integer num){
this.num = num;
return this;
}
public String getMin(){
return min;
}
public A min(String min){
this.min = min;
return this;
}
}
return this;
这种写法被叫做链式调用。你可以一路点下去。比如
class Cat
{
public Cat 叫()
{
...
return this;
}
public Cat 喝水()
{
...
return this;
}
public Cat 吃东西()
{
...
return this;
}
...
}
你可以这么调用:
Cat c = new Cat();
c.叫().喝水().叫().吃东西();
如果不返回this,就得这么写:
Cat c = new Cat();
c.叫();
c.喝水();
c.叫();
c.吃东西();
类的基本思想: 成员变量不能直接访问,访问需要通过成员函数(接口)来进行。
只要接口不变,类的内部如何实现具体的功能,调用接口的人不用在意。这就是封装的概念!
这不是什么设计模式,只是java中的属性。又叫get/set。java并没有属性的概念,只能用方法模拟。
这个不是设计模式
第二个至于你说的把set方法改成那个样子
public A min(String min){
this.min = min;
return this;
}
其实呢这个类并没有给出set方法。不是类中定义了get方法就要这个set方法的。
并不是把set方法改成那样子,根本上是不提供这个。
如果你硬要套这个包装装饰模式,到也有那一丝意味
使用num或者min来包装一个对象A,很形象。
但是并没有对象上面的包装需求。
所以这个类的设计纯粹就是根据对象的状态来构造一个对象,但是无法更改对象的属性。
如果你把类的定义改成这个
public final class A
加上final 那么这个类的定义符合immutable模式
不是设计模式,而且set方法设计的不合理,没有必要返回对象的。
这是成员变量的get和set方法啊
把实体Bean过度设计了。估计是想做成链式调用的,省点事儿吧。 搞得不伦不类的
成员变量的get和set方法,用来取值与赋值用的!!!
从代码的内容来看,只是初学者简单的语法实现,不涉及设计模式的范畴。
不知道比正常的非链式开销大不大,有没有做过试验的?