一、工厂模式
1.简单工厂模式:
通过同一个工厂,输入不同的参数得到不同的产品
例如:一个生产手机的工厂,有一个抽象接口phone,有两个产品类huawei和xiaomi,这两个产品类都实现了抽象接口phone,然后工厂类factory的一个方法的返回值是phone,然后他可以根据输入参数的不同选择返回huawei或者xiaomi这两个产品类
2.工厂模式:
工厂模式和简单工厂模式相比,就是将工厂类抽象成接口Abstractfactory,然后不同的产品有不同的工厂实现类,这些实现类都继承了Abstractfactory
例如:还是上面的例子,有了抽象的工厂Abstractfactory后,就有两个分别生产huawei和xiaomi的工厂huaweifactory和xiaomifactory,相比简单工厂模式这种模式的好处是降低耦合,比如再加一个OPPO手机,只需要增加OPPOFactory和OPPO具体的实现类,不需要改动原有代码。
3.抽象工厂模式:
抽象工厂在和工厂模式很像,简单工厂模式和工厂模式都是只针对手机这种单一商品,现在华为和小米的工厂也要开始生产电脑了,就需要增加一个抽象电脑接口pc,然后有两种新产品huaweiPC和xiaomiPC,在抽象工厂Abstractfactory种增加返回pc的方法,同时huaweifactory和xiaomifactory也会实现这个方法生产自己的pc产品
二、单例模式
单例模式保证了一个类只有一个实例,这个实例可以重复使用,并且提供了一个访问它的全局访问点,这样不必频繁的创建和销毁实例,节省资源。
三、代理模式