一.工厂模式和策略模式的区别
1.简单工厂模式:客户端传一个条件进工厂类,工厂类根据条件创建相应的产品对象,并return给客户端,供客户端使用,即客户端使用的是工厂类产生的产品对象。
2.策略模式:客户端创建一个Context类对象A(可以看做是工厂模式中工厂类),创建一个策略对象并传参给对象A,然后客户端使用A对象的某些方法来使用前面传参进来的策略,即客户端是通过A对象使用策略的。
1.工厂模式是通过条件生产出产品给客户端使用。而策略模式是客户端使用传参给Context的策略,传入策略不同,调用同样方法得到的结果不同。
2.工厂模式:客户端是使用工厂类生产的对象进行操作的,策略模式:客户端使用自己传给Context的策略的对象进行操作的。
3.依赖倒转原则:面向接口的标志,针对于抽象编程而不是针对细节编程,即程序中所有的依赖关系都是终止于抽象类或者接口,那就是面向对象设计,反之那就是过程化的设计,结合里氏代换原则:子类可以代替父类,便于扩张,并且不需要修改父类类型模块的又符合开闭原则,所以可以发现高层模块不应该依赖低层模块,都应该依赖于抽象类.
4.装饰模式:在不改变原有类的代码的情况下,动态的为已有的功能添加更多功能的一种方式。装饰的功能放在单独的类中,并让这个类包装它所要装饰的对象,因此,当需要执行特殊行为时候,客户代码就可以在运行时根据需要有选择地,按顺序地使用装饰功能包装对象。
优点:把类中的装饰功能从类中搬移去除,可以简化原有的类。有效地把类的核心职责和装饰功能区分开,而且可以去除类中重复的装饰逻辑。