建造者模式使用

建造者模式的定义:将一个复杂对象的构造与它的表示分离,使得同样的构造过程可以创建不同的表示。

 

作用:将复杂的,易出错的创建对象过程进行封装。使用的时候,只需要设置参数,最后再build就可以轻松创建对象。

 

复杂过程举例:汽车包括方向盘,*,发动机等各种部件。构建一辆汽车对象就是一个复制的过程。

易出错举例:一些需要按照一定顺序去构建一个对象。例如一个汉堡,它是有顺序的,最底下放面包,然后放鸡腿,放生菜,再放面包。假如顺序反了,先放生菜,放鸡腿,再放面包,再放面包。这就不是汉堡了。创建的结果就不一样。

 

 

下面是需要顺序来创建对象的例子,怎么用使用建造者模式,保证按顺序创建MyData的

 建造者模式使用

 

 

以上这个问题要保证设置name时,保证先设置id。我们来实现一下:

 

 

 

 

 

public class Test {
    public static void main(String[] args){
        Test test = new Test();
        test.testBuild();
    }

    private  void testBuild() {
        MyData myData = new MyBuilder().setId("2").setName("ssz").build();
        System.out.print("id的值:"+myData.getId()+"   "+"name的值:"+myData.getName());
    }

    class MyBuilder {
        String id;
        String name;
        public MyData build(){
            MyData myData = new MyData();
            myData.setId(id);
            myData.setName(name);
            return myData;
        }
        public MyBuilder setId(String id){
            this.id=id;
            return this;
        }
        public MyBuilder setName(String name){
            this.name=name;
            return this;
        }
    }



        class MyData {
            private String id;
            private String name;

            public String getId() {
                return id;
            }
            public void setId(String id) {
                this.id = id;
            }
            public String getName() {
                return name;
            }

            public void setName(String name) {
                this.name = name+id;//设置name,需要先设置id为前提。
            
}
        }

}

 

 建造者模式使用

 

 

 

总之,建造者模式,就是把复杂,易出错的进行封装。便于创建对象。



ps

 建造者模式使用公众号:android_dkx

我的博客:http://blog.csdn.NET/shenshizhong

我的简书:http://www.jianshu.com/users/345daf0211ad/latest_articles