首页 > 其他分享 >设计模式—建造者模式

设计模式—建造者模式

时间:2022-11-08 11:55:08浏览次数:40  
标签:Builder 建造 模式 demoAnimator fadeIn duration 设计模式 public

我们通常在开发中见到一种链式的构造对象,比如:

demoAnimator demoAnimator= new demoAnimator.Builder().setFade(true).setDuration(1000).build();
那他是怎样实现的呢、

建造者模式(Bulider Pattern)是将一个复杂对象的构建过程与它的实现表示分离,使得同样的构建过程可以创建不同的表示,属于创建型模式。使用创建者模式对于用户而言只需要制定需要建造的类就可以获得对象,建造过程及细节不需要了解。
建造者模式适用于创建对象需要很多步骤,但是步骤的顺序不一定固定。如果一个对象有非常复杂的内部结构(很多属性),可以将复杂对象的创建和使用进行分离。

public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

demoAnimator demoAnimator= new demoAnimator.Builder().setFade(true).setDuration(1000).build();
System.out.println(demoAnimator.fadeIn);
System.out.println(demoAnimator.duration);
}
}

//建造者模式
public class demoAnimator{
public Boolean fadeIn;
public long duration;

public demoAnimator(Builder builder) {
this.duration = builder.duration;
this.fadeIn=builder.fadeIn;
}

public static class Builder{
private Boolean fadeIn;
private long duration;

public Builder setFade(boolean fadeIn){
this.fadeIn=fadeIn;
return this;
}

public Builder setDuration(long duration){
this.duration=duration;
return this;
}

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

标签:Builder,建造,模式,demoAnimator,fadeIn,duration,设计模式,public
From: https://www.cnblogs.com/smile908/p/16869194.html

相关文章

  • 使用Postman去验证Oauth2.0授权码模式出现"Error: Bad client credentials"的解决方法
    错误时的authentication的配置如下  检查过console后,发现拿授权码去获取token时没有带上CilentSecret  经过一番奋斗发现是ClientAuthentication这里的问题......
  • Vue面试题45:history模式和hash模式有何区别?(总结自B站up主‘前端杨村长’视频,仅供自用
    分析vue-router有3个模式,其中两个更为常用,那便是history和hash;两者差别主要在显示形式和部署上;体验vue-router4.x中设置模式的方式已经改变constrouter=cr......
  • 初识设计模式 - 职责链模式
    简介职责链设计模式(ChainOfResponsibilityDesignPattern)的定义是,将请求的发送和接收解耦,让多个接收对象都有机会处理这个请求。同时,将这些接收对象串成一条链,并沿着......
  • 设计模式学习(四):建造者模式
    设计模式学习(四):建造者模式作者:Grey原文地址:博客园:设计模式学习(四):建造者模式CSDN:设计模式学习(四):建造者模式建造者模式建造者模式是创建型模式。我们在对一个实体类进......
  • 浅谈PHP设计模式的注册树模式
    简介:注册树模式,属于结构型的设计模式。一种很简单的设计模式适用场景:类似IOC。写一个庞大的类库的时候,为了方便各种资源的归纳,可以统一放到一棵树上。优点:把一个个游......
  • 设计模式---装饰器模式
    简述运行时,为原对象拓展新的行为。相较于传统的继承来拓展新的行为,装饰器模式更为的灵活多变,当然实现起来也更为复杂。话不多说,看个优化案例吧。优化案例最初版v0现......
  • 设计模式学习(三):工厂模式
    设计模式学习(三):工厂模式作者:Grey原文地址:博客园:设计模式学习(三):工厂模式CSDN:设计模式学习(三):工厂模式工厂模式工厂模式是创建型模式,工厂模式分为:简单工厂,工厂方法和抽......
  • day24 设计模式
    day24设计模式概述:设计模式是一种解决某个问题的固定模式(原理都是一样的),它不区分语言.常用的设计模式有23种,他分为三类(主要针对的是类和对象)设计......
  • XpSp3(未开启PAE模式)内存管理之系统PTE区域 上
    前言  几年前就已经看过wrk中关于内存管理和缓存管理的实现,由于当时对内核调试尚不熟悉,因此仅仅停留在代码层面。现在结合windbg操作,希望能有新的收获。毛德操的<window......
  • zabbix 主动模式和被动模式的区别
    目录zabbix主动模式和被动模式的区别zabbix主被动模式介绍将监控的主机由被动模式修改为主动模式配置zabbixagent监控主机的被动模式修改为主动模式查看主机链接的模板有......