一、说一下常见的设计模式
1)单例模式:保证被建立一次,节省系统开销。算法
2)工厂模式(简单工厂、抽象工厂):解耦代码。设计模式
3)观察者模式:定义了对象之间的一对多的依赖,当一个对象改变时,它的全部的依赖者都会收到通知并自动更新。spa
3)外观模式:提供一个统一的接口,用来访问子系统中的一群接口,外观定义了一个高层的接口,让子系统更容易使用。设计
4)模板方法模式:定义了一个算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类能够在不改变算法结构的状况下,从新定义算法的步骤。对象
5)状态模式:容许对象在内部状态时改变它的行为,对象看起来好像修改了它的类。接口
二、简单工厂和抽象工厂有什么区别?
简单工厂:用来生产同一等级结构中的任意产品,对于增长新的产品,无能为力。产品
工厂方法:用来生产赞成等级结构中的固定产品,支持增长任意产品。模板
抽象工厂:用来生产不一样产品族的所有产品,对于增长新的产品,无能为了;支持增长产品族。class