88.说一下你熟悉的设计模式?
89.简单工厂和抽象工厂有什么区别?
简单工厂模式:
抽象产品接口、具体产品类、工厂类。
//产品=工厂类(具体产品类型) 上转型对象
Icar car = factory.GetCar(CarType.SportCarType);
强耦合
抽象工厂模式:
抽象工厂模式是所有形态的工厂模式中最为抽象和最具一般性的一种形态。抽象工厂模式是指当有多个抽象角色时,使用的一种工厂模式。抽象工厂模式可以向客户端提供一个接口,使客户端在不必指定产品的具体的情况下,创建多个产品族中的产品对象。
抽象工厂、具体工厂、抽象产品、具体产品
-
- 优点:
- 抽象工厂模式隔离了具体类的生产,使得客户并不需要知道什么被创建。
- 当一个产品族中的多个对象被设计成一起工作时,它能保证客户端始终只使用同一个产品族中的对象。
- 增加新的具体工厂和产品族很方便,无须修改已有系统,符合“开闭原则”。
- 缺点:增加新的产品等级结构很复杂,需要修改抽象工厂和所有的具体工厂类,对“开闭原则”的支持呈现倾斜性。(不过说这个缺点好像有点吹毛求疵了)
- 优点: