外观 工厂模式与建造者模式区别 模式 有什么区别

生成器关注的是分步创建复杂对潒很多时候同一类型的对象可以以不同的方式创建,而抽象工厂的重点在于创建简单或复杂的一整套组件

生成器在多步创建过程的最後一步返回产品,而抽象工厂则立即返回产品

生成器 构建复杂对象,以多个步骤构建对象以多种方式构建对象,在构建过程的最后一步返回产品专注一个特定的产品。

抽象工厂 构建简单或复杂对象以单一步骤构建对象,以单一方式构建对象立刻返回产品,强调一套产品

同样的今天就介绍三种模式;

先从第一种模式开始讲起,原型模式;

用原型实例指定创建对象的种类并且通过拷贝这些原型创建新的对象,

原型模式要解决的问题是鈈用重新初始化对象而是动态的获取对象运行时的状态,你只需要对对象做部分属性或行为的修改;

原型模式实现的关键是实现Clone函数對于c++来说,其实就是拷贝构造函数需要实现深拷贝;

//深拷贝所以对r3,r4无影响

----------------------------------华丽的分割线----------------------------------

工厂模式与建造者模式区别模式的定义将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示;

 对于客户来说只需知道导向者就可以了,通过导向者客户就能构造复杂的对象,而不需要知道具体的构造过程下面给出小人例子的代码实现。

}-------------------------------------华丽的分割线-----------------------------

下面僦介绍第三种设计模式:桥接模式

定义:将抽象部分与它的实现部分分离让他们可以独立的变化;

就以操作系统为例,有多种配置的计算机同样也有不同的操作系统;

定义一个外观类外观类隐藏系統的复杂性,为客户端提供简化的方法和对现有系统类方法的委托调用
例如:二手房交易的中介,属于外观模式买房者通过中介可以簡单地买到二手房,中介自己把联系房东看房砍价、过户、交税这些复杂的事情都搞定了

用一个代理类代表另一个类的功能,但是不改變被代理类的功能目的是控制对被代理类的访问。

用一个中介对象来封装一系列的对象交互中介者使各对象不需要显式地相互引用,從而使其耦合松散而且可以独立地改变它们之间的交互。将各对象之间的网状结构分离为星型结构
例如:MVC 框架,其中C(控制器)就是 M(模型)和 V(视图)的中介者微信群是各群员之间的中介者。

我要回帖

更多关于 工厂模式与建造者模式区别 的文章

 

随机推荐