工厂模式(下)

依赖具体类的关系如下:

工厂模式(下)_第1张图片

依赖抽象如下:


在应用工厂方法之后,高层组件(PizzaStore)和低层组件(下面这些披萨)都依赖了Pizza抽象。

依赖倒置原则,倒置在哪:从上图2可以看出低层组件依赖高层的抽象,同样高层组件也依赖同样的抽象。即现在高层和低层模块都依赖这个抽象。

避免违反依赖倒置原则的几个指导方针:

1)变量不可以持有具体类的引用。(如果使用new,变量就会持有具体类的引用,可以使用工厂来避开这样的做法。)

2)不要让类派生自具体类。(如果派生至具体类,就会依赖具体类。可以派生至一个抽象(接口或抽象类))

3)不要覆盖基类中已实现的方法。(如果覆盖基类已实现的方法,那么你的基类就不是一个真正适合被继承的抽象,基类中已实现的方法,应该由所有的子类共享。)


你可能感兴趣的:(工厂模式(下))