Android中常用的设计模式-建造者模式(Builder Pattern)

建造者模式(Builder Pattern)是一种创建型设计模式,也被称为生成器模式。它将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

建造者模式(Builder Pattern)是一种创建型设计模式,也被称为生成器模式。它将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

介绍

建造者模式(Builder Pattern)是一种创建型设计模式,也被称为生成器模式。它将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

Android中常用的设计模式-建造者模式(Builder Pattern)

优缺点

优点:

  • 封装性好,构建和表示分离。
  • 扩展性好,各个具体的建造者相互独立,有利于系统的解耦。
  • 客户端不必知道产品内部组成的细节,建造者可以对创建过程逐步细化,而不对其它模块产生任何影响,便于控制细节风险。

缺点:

  • 产品的组成部分必须相同,这限制了其使用范围。
  • 如果产品的内部变化复杂,如果产品内部发生变化,则建造者也要同步修改,后期维护成本较大。

结构

  • Builder:为创建一个产品对象的各个部件指定抽象接口。
  • ConcreteBuilder:实现Builder的接口以构造和装配该产品的各个部件,定义并明确它所创建的表示,并提供一个检索产品的接口。
  • Director:构造一个使用Builder接口的对象。
  • Product:表示被构造的复杂对象。ConcreteBuilder创建该产品的内部表示并定义它的装配过程,包含定义组成部件的类,包括将这些部件装配成最终产品的接口。

示例

public class Person {

    private String mPersonName;
    private int mPersonAge;
    private int mSex;
    private String mCardNumber;

    public Person Person(){
        return new Person(new Person.Builder());
    }

    public Person(Person.Builder builder){
        this.mCardNumber = builder.mCardNumber;
        this.mSex = builder.mSex;
        this.mPersonAge = builder.mPersonAge;
        this.mPersonName = builder.mPersonName;
    }

    public static final class Builder {
    
        private String mPersonName;
        private int mPersonAge;
        private int mSex;
        private String mCardNumber;

        public Builder(){}

        public Person build(){
            return new Person(this);
        }

        public Person.Builder setPersonName(String mPersonName) {
            this.mPersonName = mPersonName;
            return this;
        }

        public Person.Builder setPersonAge(int mPersonAge) {
            this.mPersonAge = mPersonAge;
            return this;
        }

        public Person.Builder setSex(int mSex) {
            this.mSex = mSex;
            return this;
        }

        public Person.Builder setCardNumber(String mCardNumber) {
            this.mCardNumber = mCardNumber;
            return this;
        }
    }
}



//使用Buidler构建Person对象
Person person = new Person.Builder()
    .setPersonName("张三")
    .setSex(1)
    .setPersonAge(30)
    .build();

建造者模式通过将复杂对象的构建过程分解为多个简单的构建步骤,然后按照顺序逐步构建,使得构建过程更加清晰和易于管理。同时,由于构建过程和表示被分离,因此可以创建不同的表示,从而提高了系统的灵活性和可扩展性。

在使用建造者模式时,需要仔细考虑产品的组成部分是否相同,以及产品的内部变化是否复杂,以避免在后期维护中产生不必要的麻烦。此外,还需要根据实际情况选择合适的角色和实现方式,以达到最佳的设计效果。

©本文为清一色官方代发,观点仅代表作者本人,与清一色无关。清一色对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。本文不作为投资理财建议,请读者仅作参考,并请自行承担全部责任。文中部分文字/图片/视频/音频等来源于网络,如侵犯到著作权人的权利,请与我们联系(微信/QQ:1074760229)。转载请注明出处:清一色财经

(0)
打赏 微信扫码打赏 微信扫码打赏 支付宝扫码打赏 支付宝扫码打赏
清一色的头像清一色管理团队
上一篇 2024年2月21日 00:04
下一篇 2024年2月21日 00:04

相关推荐

发表评论

登录后才能评论

联系我们

在线咨询:1643011589-QQbutton

手机:13798586780

QQ/微信:1074760229

QQ群:551893940

工作时间:工作日9:00-18:00,节假日休息

关注微信