b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

解释器模式举例_lua解释器交互模式_动态编译与解释器模式(9)

电脑杂谈  发布时间:2017-02-22 17:29:35  来源:网络整理

Separate the construction of a complex object from its representation so that the same construction process can create different representations.

将一个复杂对象的构建与它的表示分离,使同样的构建过程可以创建不同的表示。

何时使用:

当系统准备为用户提供一个内部结构复杂的对象,而且在构造方法中编写创建该对象的代码无法满足用户需求时,就可以使用模式老构造这样的对象。 当某些系统要求对象的构造过程必须独立于创建该对象的类时。

优点:

模式将对象的构造过程封装在具体的中,用户使用不同的具体就可以得到该对象的不同表示。 模式将对象的构造过程从创建该对象的类中分离出来,使用户无须了解该对象的具体组件。 可以更加精细有效的控制对象的构造过程。将对象的构造过程分解成若干步骤,这就是程序可以更加精细,有效的控制整个对象的构造。 模式将对象的构造过程与创建该对象类解耦,是对象的创建更加灵活有弹性。 当增加新的具体的是,不必修改指挥者的代码,即该模式满足开-闭原则。

模式的重心在于分离构建算法和具体的构造实现,从而使构建算法可以重用。

比如我们要得到一个日期,可以有不同的式,然后我们就使用不同的来实现。

首先是这个类(产品):

//产品public class MyDate {    String date;}

然后就是抽象,描述的行为:

//抽象public intece IDateBuilder {    IDateBuilder buildDate(int y,int m,int d);    String date();}

接下来是具体,一个以“-”分割年月日,另一个使用空:

//具体public class DateBuilder1 implements IDateBuilder{    private MyDate myDate;    public DateBuilder1(MyDate myDate){        this.myDate = myDate;    }    @Override    public IDateBuilder buildDate(int y, int m, int d) {        myDate.date = y"-"m"-"d;        return this;    }    @Override    public String date() {        return myDate.date;    }}
//具体public class DateBuilder2 implements IDateBuilder{    private MyDate myDate;    public DateBuilder2(MyDate myDate){        this.myDate = myDate;    }    @Override    public IDateBuilder buildDate(int y, int m, int d) {        myDate.date = y" "m" "d;        return this;    }    @Override    public String date() {        return myDate.date;    }}


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-33893-9.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 赵辉
      赵辉

      #吴亦凡##挑战者吴亦凡#

    • 屈淑灵
      屈淑灵

      普京也就是在叙利亚耍耍而已

    • 陈玉兰
      陈玉兰

      我们能不能少替对方考虑

    热点图片
    拼命载入中...