擅长:python、mysql、java
<p>您最近描述的模式是<em>抽象工厂模式</em>;有几个工厂实现继承自同一个<em>抽象</em>工厂。在回答问题1时,这当然是工厂模式的一个变体</p>
<p>对于问题2,聚合与依赖关系实际上是一个风格问题。GoF对依赖性的使用(逻辑上)比聚合弱(即工厂<em>依赖</em>产品是比工厂<em>聚合</em>产品弱的概念)。两者都能传达信息,即两者都有效</p>
<p>就个人而言,我更喜欢依赖性,因为我不认为工厂实际上聚合了产品。对于<em>聚合</em>来说,想象一辆汽车聚合车轮。这与工厂和产品之间的关系并不是一个平行的概念。一旦产品被创造出来,工厂就与之无关了。继续这个例子,一旦一家汽车制造厂制造了一辆汽车,汽车就会离开工厂,再也不会回来,因此很难说汽车是制造它的工厂的一部分。然而,这是我的看法</p>
<p>我认为课程材料图表中的聚合是错误的。<em>客户机</em>将聚合(抽象)工厂,而不是相反,同样,工厂将聚合产品。我也不完全清楚为什么<em>客户机</em>不会直接引用<em>产品</em>,因为工厂中的关键是抽象对象的创建,而不是使用</p>