美文网首页
常见三种设计模式

常见三种设计模式

作者: 茴香豆的第五种写法 | 来源:发表于2017-01-24 12:18 被阅读0次

    1:builder工厂模式
    通过平时对代码的总结和优化,我们经常可以将原先复杂的代码改写成简单易懂的代码,增强代码可读性,builder模式主要用于复杂对象的构造,通过使用builder模式可以减少构造器或方法调用传入的参数数量,对很多配置参数进行初始化的对象来说尤其适用。
    下面举个常规的例子
    Student s=new Student();
    s.setName("张三");
    s.setIsBoy(true);
    s.setHight(false)
    xxxxxx
    xxxxxx
    第二种常规的例子(多参构造方法)
    Student s=new Student("张三",true,false);
    如果用builder模式的话:
    Student s=new Student.Builder(this).name("张三").isboy(true).hight(false).build();
    实体Student应该这样写
    public class Student{
    string name;
    boolean isboy;
    boolean hight;
    xxxxxxxx.....
    Student (Context context,string name,boolean isboy,boolean hight);
    public Student class Builder{
    private string name;
    private boolean isboy;
    private biolean hight;
    public Student.Builder name(string name){
    this.name=name;
    return this;
    }
    public Student.Builder isboy(boolean isboy){
    this.isboy=isboy;
    return this;
    }
    public Student.Builder hight(boolean hight){
    this.hight=hight;
    return this;
    }
    public Student build(){
    return new Student(context,this.name,this.isboy,this.hight)
    }
    }
    **备注:
    Builder类暂存了外界传入的参数,然后在build方法中,通过调用目标类的构造方法来生成对象。
    **
    2:观察者模式

    常见三种设计模式
    常见三种设计模式
    这里图片可以说明完整的使用方法,相比回调的话,观察者是一个事件可以触发多个观察者,回调就是一对一,在实现observer接口后需要实现接口中的update方法,然后参数中的observable赋值给自己定义的事件中,通过get取到传过来的值。
    3:策略模式
    先看一张图理解下
    常见三种设计模式
    下面具体说说,首先我们定义了一个照明的接口,里面有一个照明方法,然后定义三个类分别继承照明接口,之后我们定义一个任务类,申明接口,提供一个外部可调用的方法,接收到底是用什么方式来照明。和一个可供外部调用的实现类.照明方法,最后就是如果使用不同的方式来照明了,首先new三个不同照明方式,然后new一个房子变亮任务,调用任务中的照明方式,把手电筒传过去,然后调用任务类.接口照明方法,来实现照明。这种用法的目的就在于可扩展性,如果来了第四种照明方式,我们可以直接添加类实现,然后调用方法,不需要重新写照明方法,也不需要用过多的if esle来判断是哪种照明方式了。

    相关文章

      网友评论

          本文标题:常见三种设计模式

          本文链接:https://www.haomeiwen.com/subject/amuzbttx.html