有没得办法可以查询一个网站有没得做竞价呀,网络营销的六大新特征,广州最新发布消息,网络营销的机遇和挑战一、简单工厂模式简单工厂的定义#xff1a;提供一个创建对象实例的功能#xff0c;而无须关心其具体实现。被创建实例的类型可以是接口、抽象类#xff0c;也可以是具体的类实现汽车接口public interfaceCar {String getName();}奔驰类public class Benz implementsCar {Ov…一、简单工厂模式简单工厂的定义提供一个创建对象实例的功能而无须关心其具体实现。被创建实例的类型可以是接口、抽象类也可以是具体的类实现汽车接口public interfaceCar {String getName();}奔驰类public class Benz implementsCar {OverridepublicString getName() {return Benz;}}宝马类public class BMW implementsCar {OverridepublicString getName() {return BMW;}}简单工厂既能生产宝马又能生产奔驰public classSimpleFactory {publicCar getCar(String name){if (name.equals(BMW)){return newBMW();}else if (name.equals(benz)){return newBenz();}else{System.out.println(不好意思这个品牌的汽车生产不了);return null;}}}测试类public classSimpleFactoryTest {public static voidmain(String[] args){SimpleFactory simpleFactory newSimpleFactory();Car car simpleFactory.getCar(BMW);System.out.println(car.getName());}}测试结果BMW根据简单工厂的定义用户只要产品而不在乎产品如何生产看起来好像很完美的样子。但大家想想这个世界存在什么都生产的工厂吗显然是不存在的每一个汽车品牌都有自己的生产工厂都有自己生产技术。映射到spring框架中我们有很多很多种的bean需要生产如果只依靠一个简单工厂来实现那么我们得在工厂类中嵌套多少个if..else if啊而且我们在代码中生产一辆汽车只是new一下就出来了但实际操作中却不知道需要进行多少操作加载、注册等操作都将体现在工厂类中那么这个类就会变得紊乱管理起来也很不方便所以说每个品牌应该有自己的生产类。因为专一所以专业嘛这个时候工厂方法就出现了。二、工厂方法工厂接口//定义一个工厂接口功能就是生产汽车public interfaceFactory {Car getCar();}奔驰工厂public class BenzFactory implementsFactory {OverridepublicCar getCar() {return newBenz();}}宝马工厂public class BMWFactory implementsFactory{OverridepublicCar getCar() {return newBMW();}}测试类public classFactoryTest {public static voidmain(String[] args){Factory bmwFactory newBMWFactory();System.out.println(bmwFactory.getCar().getName());Factory benzFactory newBenzFactory();System.out.println(benzFactory.getCar().getName());}}测试结果BMWBenz根据上述代码可以看出不同品牌的汽车是由不同的工厂生产的貌似又是很完美的。但大家看一下测试类当一个人想要去买一辆宝马汽车的时候(假设没有销售商)那么他就要去找宝马工厂给他生产一辆过几天又想要买一辆奔驰汽车的时候又得跑到奔驰工厂请人生产这无疑就增加了用户的操作复杂性。所以有没有一种方便用户操作的方法呢这个时候抽象工厂模式就出现了。三、抽象工厂抽象工厂public abstract classAbstractFactory {protected abstractCar getCar();//这段代码就是动态配置的功能//固定模式的委派publicCar getCar(String name){if(BMW.equalsIgnoreCase(name)){return newBmwFactory().getCar();}else if(Benz.equalsIgnoreCase(name)){return newBenzFactory().getCar();}else if(Audi.equalsIgnoreCase(name)){return newAudiFactory().getCar();}else{System.out.println(这个产品产不出来);return null;}}}默认工厂public class DefaultFactory extendsAbstractFactory {private AudiFactory defaultFactory newAudiFactory();publicCar getCar() {returndefaultFactory.getCar();}}宝马工厂public class BMWFactory extendsAbstractFactory {OverridepublicCar getCar() {return newBMW();}}奔驰工厂public class BenzFactory extendsAbstractFactory {OverridepublicCar getCar() {return newBenz();}}测试类public classAbstractFactoryTest {public static voidmain(String[] args) {DefaultFactory factory newDefaultFactory();System.out.println(factory.getCar(Benz).getName());}}测试结果Benz根据上述代码可以看出用户需要一辆汽车只需要去找默认的工厂提出自己的需求(传入参数)便能得到自己想要产品而不用根据产品去寻找不同的生产工厂方便用户操作。注对于设计模式有些人嗤之以鼻有些人敬若神明但我是认可的。按我粗浅的理解设计模式的经典之处就在于解决了编写代码的人和调用代码的人双方的痛楚不同的设计模式也只适用于不同的场景。至于用或者不用如何使用那就需要各位看官着重考虑了。但为了使用而使用是不应该的细微之处只有留给大家慢慢品味了。