1、简单工厂模式、工厂模式、抽象工厂模式的区别?
简单工厂模式(静态工厂模式):简单工厂是一个类,其中一个静态方法,根据传入的参数来生成特定的对象。
工厂模式:工厂模式提供了一个抽象的工厂类,该类有一个生产抽象产品的接口,程序员可根据需要继承抽象工厂实现生产特定产品的方法,并且自己实现特定的产品。工厂模式关注的是产品的生成,而不在于生成产品之间的关系,在最终使用时,使用产品本身。
抽象工厂模式:由一个抽象工厂类、多个有关联的抽象产品组成,程序员根据需要自行扩展。关注产品之间的抽象关系,因此至少要两个类。抽象工厂中,客户端把产品之间的关系理清楚,一般最后调用客户端的接口。抽象工厂更像是一个复杂版本的策略模式,策略模式更换策略来改变处理方式或结果,而抽象工厂的客户端改变工厂来改变执行结果,看不到产品本身。
2、策略模式?
定义一系列算法,并将这些算法封装起来,使它们可以相互替换。策略模式可以避免多重条件转移。
组成:抽象策略角色(抽象策略类,接口或类),具体策略角色(一系列包装了算法和行为的类),环境角色(客户端对抽象策略角色的引用)。