2 ljzl0513 ljzl0513 于 2016.01.30 20:44 提问

请问这是java中的设计模式吗?

请问下面的代码属于什么设计?为什么把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;

}

}

10个回答

devmiao
devmiao   Ds   Rxr 2016.01.30 23:04
已采纳

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.吃东西();

fk002008
fk002008   2016.01.31 01:02

这个不是设计模式

第二个至于你说的把set方法改成那个样子

public A min(String min){
    this.min = min;
    return this;
}

其实呢这个类并没有给出set方法。不是类中定义了get方法就要这个set方法的。
并不是把set方法改成那样子,根本上是不提供这个。

如果你硬要套这个包装装饰模式,到也有那一丝意味
使用num或者min来包装一个对象A,很形象。

但是并没有对象上面的包装需求。

所以这个类的设计纯粹就是根据对象的状态来构造一个对象,但是无法更改对象的属性。

如果你把类的定义改成这个

public final class A
加上final 那么这个类的定义符合immutable模式

devmiao
devmiao   Ds   Rxr 2016.01.30 23:01

这不是什么设计模式,只是java中的属性。又叫get/set。java并没有属性的概念,只能用方法模拟。

wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.01.31 12:28

不是设计模式,而且set方法设计的不合理,没有必要返回对象的。

zrf1335348191
zrf1335348191   2016.01.31 14:57

这是成员变量的get和set方法啊

Love667767
Love667767   2016.06.26 22:59

把实体Bean过度设计了。估计是想做成链式调用的,省点事儿吧。 搞得不伦不类的

qq_35024791
qq_35024791   2016.06.28 16:20

成员变量的get和set方法,用来取值与赋值用的!!!

wangdan901990
wangdan901990   2016.06.29 09:26

从代码的内容来看,只是初学者简单的语法实现,不涉及设计模式的范畴。

vawe222
vawe222   2016.07.15 06:57

不知道比正常的非链式开销大不大,有没有做过试验的?

91program
91program   Ds   Rxr 2016.01.30 20:52

类的基本思想: 成员变量不能直接访问,访问需要通过成员函数(接口)来进行。
只要接口不变,类的内部如何实现具体的功能,调用接口的人不用在意。这就是封装的概念!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
java 抽象类实现接口是什么设计模式
[JAVA设计模式]首先部分:接口、抽象类、设计原则
java中几种常用的设计模式
java中常用的几种设计模式: 创建型:简单工厂模式(并不是23种设计模式之一)、工厂方法、抽象工厂模式、单例模式、生成器模式和原型模式结构型:适配器模式adapter、桥接模式bridge、组合器模式component、装饰器模式decorator、门面模式、亨元模式flyweight和代理模式proxy行为型:命令模式command、解释器模式、迭代器模式、中介者模式、备忘录模式、观
Java中的单例设计模式之饿汉模式、懒汉模式
Java中的设计模式(Design Pattern)是一套被反复使用、多数人
简单说说Java中 框架,架构,设计模式的区别
很多人不太清楚框架和设计模式的区别。就拿我们熟悉的mvc来说,这里怕有些不太了解的人,所以还是简要的概括一下什么是mvc, mvc是 Model(模型)-View(视图)-Controller(控制器)的英文字母的缩写。m指的是业务模型,v指的是用户所使用的界面(如你们进你们学校的教务系统网页) c指的是控制器。  好,下面说正题,什么是框架:框架就好比现在盖大楼的地基+柱子+房梁 组成了一
Java 23中设计模式
Java 23中设计模式,Java 23中设计模式Java 23中设计模式Java 23中设计模式Java 23中设计模式Java 23中设计模式Java 23中设计模式Java 23中设计模式Java 23中设计模式Java 23中设计模式
面试问题:让你画出某种设计模式的类图
创建型模式: 1.AbstractFactoty(抽象工厂)   2.Builder(建造者模式)       3.FactoryMethod(工厂方法) 4.ProtoType(原型): 5.SingleTon(单例)       结构型模式: 1.Adapter(适配器)    类适配器:   对象适配器: 2.Bridge(桥接)
java编写将本程序的次数,上次运行程序的时间,上次运行的操作系统信息写入文件中
代码: import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.FileReader; import java.io.PrintWriter; import java.text.SimpleDateFormat; import java.util.Da
Java设计模式(十) 你真的用对单例模式了吗?
本文介绍了为何需要单例模式,单例模式的设计要点,饿汉和懒汉的区别,并通过实例介绍了实现单例模式的九种实现方式及其优缺点。
二十三中设计模式
一、设计模式的分类 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式
Java 核心类库中的一些设计模式
Java 核心类库中的一些设计模式