1. 什么是依赖?
当你实例化一个对象时,就是在依赖它的具体类
2. 依赖倒置原则:要依赖抽象,不要依赖具体
不让高层组件依赖低层组件,而且不管高层或低层,都应该依赖于抽象
【例如】PizzaStore是高层组件、Pizza实现是低层组件,在高层组件中不要实例化Pizza对象,
而是创建一个Pizza抽象类,高层组件依赖于这个抽象类,低层组件“Pizza实现”也依赖于这个抽象类。
这种由低层依赖高层,叫做依赖倒置。
3.如何遵循依赖倒置原则?
变量不可以持有具体类的引用【不使用new】
不要让类派生自具体类【用抽象类/接口】
不要覆盖基类中已实现的方法【基类中实现不会被改变的方法,多用抽象方法】
所有工厂模式都是通过减少应用程序和具体类之间的依赖,促进松耦合;
将对象创建的过程封装起来,以便将代码从具体类中解耦。
4.简单工厂
定义一个工厂类,在具体类中引用工厂类,创建产品【虽然不是一种设计模式,但仍然可以将客户程序从具体类中解耦。】
5.工厂模式【使用继承】
定义了一个创建对象的接口【接口中通常只有一个方法】,由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。
6.抽象工厂模式【使用对象组合】
提供一个接口【接口中通常有很多方法,用来创建一个产品家族】,用于创建相关或依赖对象的家族,而不需要明确指定具体类。