设计模式之——建造者模式、原型模式

设计模式之——建造者模式、原型模式

今日学习总结

建造者模式:

在建造者模式中分为以下四个角色:产品,抽象建造者,具体建造者,指挥者。
这四个角色就是构成建造者模式的部分。

产品:

就是需要被建造,被加工的角色,有点类是与JDBC中的实体类,就是一堆属性,和属性的get,set方法,声明好以后方便被后面加工。

抽象建造者:

是被abstract修饰的抽象类,里面定义这这个产品所需要被加工的抽象方法,里面有这最基础共通的方法,原理就和多态一样,方便被后面的具体建造者们建造

具体建造者:

具体建造者需要继承抽象建造者,实现抽象建造者里面的方法。在具体建造者里面产品才会被真正的加工。

指挥者:

我认为指挥者的作用统一调配产品的赋值,指定抽象建造者的具体建造者是谁,需要执行具体建造者的哪些方法等等

原型模式

原型模式大体意思就是创建一个原型,然后在此原型的基础上加以克隆,对象不同,值相同。
原型模式分为:抽象原型类,具体原型类,客户类
原型模式里面的克隆又有着浅克隆与深克隆之分,浅克隆只是单纯的新new一次具体原型类,而深克隆是从序列化的技术实现的,将对象存入流中,然后又将对象从流中取出来,这样他的地址变了,具体对象也就不一样了,只是克隆了数据,而不是和浅克隆一样是复制

抽象原型类:

由abstract或者interface申明的抽象或者接口类,里面写着抽象方法,声明克隆方法的接口。

具体原型类:

此类会被定义为一个原型,在这里面会实现抽象原型类的方法,在这里实现克隆方法,原理就是在克隆方法里面重新new一个具体原型类对象,这样具体原型类就被复制了一份了,不过这是浅克隆,只对非应用类型生效,因为引用类型存储的为地址,而不是直接为具体对象数据。

客户类:

调用克隆方法,调用一次就复制一次。

猜你喜欢

转载自blog.csdn.net/qq_49249150/article/details/123699772