风也温柔

计算机科学知识库

java构造方法的特点 java设计模式之构建模式

  构造数据类型java_java构造方法的特点_咀嚼式口器与刺吸式口器构造特点

  构建模式解决的问题

  创建对象的方法,通常的做法是通过构造方法java构造方法的特点,直接对属性赋值。或者先new一个对象,通过set方法对属性赋值,但是如果属性很多的情况下,构造方法需要注意属性赋值的顺序,如果通过set方法赋值,需要调用很多次set方法。构建模式让构建复杂对象更方便。

  构建模式角色

  构造数据类型java_java构造方法的特点_咀嚼式口器与刺吸式口器构造特点

  构建模式抽象类方法类型

  构造数据类型java_咀嚼式口器与刺吸式口器构造特点_java构造方法的特点

  代码实现

   public class Student {

        private String name;
        private Integer age;
        private String address;
        public Student(){}
        public Student(String name, Integer age, String address) {
            this.name = name;
            this.age = age;
            this.address = address;
        }
    <p>![构造数据类型java_咀嚼式口器与刺吸式口器构造特点_java构造方法的特点][4]

        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public Integer getAge() {
            return age;
        }
        public void setAge(Integer age) {
            this.age = age;
        }
        public String getAddress() {
            return address;
        }
        public void setAddress(String address) {
    &emsp;&emsp;![咀嚼式口器与刺吸式口器构造特点_java构造方法的特点_构造数据类型java][5]

            this.address = address;
        }

</p>
   public class StudentBuilder {

        private Student student;
        public StudentBuilder(){
            student = new Student();
        }
        public StudentBuilder age(Integer age){
            student.setAge(age);
            return this;
        }
        public StudentBuilder name(String name){
            student.setName(name);
            return this;
        }
        public StudentBuilder address(String address){
            student.setAddress(address);
            return this;
    <p>

        }
        public Student build(){
            return student;
        }
    }

</p>
   public class StudentCreateTest {

        public static void main(String[] args) {
            //构造方法方法创建对象和赋值
            Student student = new Student("java程序员思维",20,"浦东");
            System.out.println(student);
            //set方法创建对象和赋值
            Student student1 = new Student();
            student1.setName("java程序员思维");
            student1.setAge(20);
            student1.setAddress("浦东");
            System.out.println(student1);
            //构建模式
    
            StudentBuilder studentBuilder = new StudentBuilder();
            Student student2 = studentBuilder.name("java程序员思维").age(20)
            .address("浦东").build();
            System.out.println(student2);
        }

  运行结果:

  创建三种对象的方法,各有优缺点,构造方法方式创建,在调用时,需要注意对应属性的顺序,在属性很多的情况下java构造方法的特点,这是一个很麻烦的事情,优势是只有一行代码。通过默认构造方法创建对象,再通过set方法赋值属性的方法,优点是不需要关心构造方法的属性顺序,缺点是需要调用多次set方法,代码行数较多。第三种方式构建模式创建对象java构造方法的特点 java设计模式之构建模式,结合前两种方法的各自优点,不需要关心顺序,通过链式方法,只有一行代码,缺点是需要创建对应的对象。

  java构造方法的特点_构造数据类型java_咀嚼式口器与刺吸式口器构造特点

  jdk中的构建模式

  java.lang包中的,运用的就是构建模式。

   @Override

    public StringBuilder append(char c) {
        super.append(c);
        return this;
    }
    @Override
    public StringBuilder append(int i) {
        super.append(i);
    <p>![java构造方法的特点_构造数据类型java_咀嚼式口器与刺吸式口器构造特点][7]

        return this;
    }
    @Override
    public StringBuilder append(long lng) {
        super.append(lng);
        return this;
    }
    @Override
    public StringBuilder append(float f) {
        super.append(f);
        return this;

</p>
  优缺点

  优点:建造者独立,易扩展。 便于控制细节风险。

  缺点:产品必须有共同点,范围有限制。 内部变化复杂,会有很多的建造类。

  生活中的构建模式

  盖房子,我们在生活中盖房子,有地基,墙、顶梁柱这个是大框架,框架搭好了,接下来要对房子进行装修,地板、壁纸、沙发、冰箱、电视等等也是房子的一部分。不同的部分根据自己的喜好有不同的构建方式。

  组装电脑,我们买的电脑都是由主板、内存、cpu、显卡等组成,如何把这些东西组装起来给用户这就是建造者模式的作用,不同的人对电脑的配置需求不一样,打游戏的对显卡要求高,但是电脑构成部件是固定的,我们找电脑城的装机人员把电脑装起来这一过程就是建造模式.

  构造数据类型java_java构造方法的特点_咀嚼式口器与刺吸式口器构造特点

  我的启发

  构建模式,让构建产品的过程和产品本身进行分离,用户可以根据自己的喜好,进行私人订制,马桶镶金、电脑镶砖也都是可以的,只要你够富有和真的喜欢。

  文章来源:https://zhuanlan.zhihu.com/p/64596904