资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

设计模式之工厂模式一简单工厂模式-创新互联

设计模式之工厂模式一简单工厂模式

老河口ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:13518219792(备注:SSL证书合作)期待与您的合作!

设计模式之工厂模式一简单工厂模式

工厂模式由来:

在我们创建对象的时候使用,使用new操作的。如果多个对象创建都使用new会。所以工厂模式就是用来代理new操作的一种模式。根据工厂模式由来,我们可以看出工厂模式属于创建型模式。提供一种创建对象的最佳方式。

来源:凯哥Java(kaigejava)

工厂模式主要的分类:

设计模式之工厂模式一简单工厂模式

简单工厂模式、工厂方法模式、抽象工厂模式

简单工厂模式:

简单工厂模式不属于23中设计模式。又叫做静态工厂方法,简单工厂模式是工厂模式家族中最简单使用的一种模式。也可以理解为不同工厂模式的一个特殊实现。

如何理解?

举例:一个工厂类,一个产品的抽象类。

现实生活举例:一个面馆,可以生产多中面条。

如:面馆里面可以做的西红柿鸡蛋面、牛肉拉面、刀削面、哨子面、biangbiang面及热干面。

我们就来模拟这种场景:

我们先来看项目结构:

设计模式之工厂模式一简单工厂模式

说明:

1:面条接口类

2:具体面条实现类

3:简单工厂类(面馆对象)

4:测试类型

我们先来看看面条接口类:

INoodlesInterface

设计模式之工厂模式一简单工厂模式

我们在来看看,面条具体实现类--西红柿鸡蛋面类对象里面:

public class TomatoAndEggNoodles implements INoodlesInterface {

private String noodlesName;

public TomatoAndEggNoodles(){}

public TomatoAndEggNoodles(String noodlesName){

   this.noodlesName = noodlesName;

}

@Override

public void noodlesdescription() {

   System.out.println("大爷,您的"+this.noodlesName+"价格为:10元。");

}

}

设计模式之工厂模式一简单工厂模式

其他具体面条实现类里面类似。这里就不一一贴出来了。

我们来看看面馆对象:

设计模式之工厂模式一简单工厂模式

里面由三部分:

菜单部分、根据菜单序号制作面条、根据面条名称制作面条。

我们来看看根据菜单序号制作面条的:

public  static INoodlesInterface makeNoodlesByMenuType(int noodletType){

switch (noodletType){

   case NOODLES_TYPE_1:

       return new TomatoAndEggNoodles("西红柿鸡蛋面");

   case NOODLES_TYPE_2:

       return new HandPulledNoodleSoupWithBeef("牛肉拉面");

   case NOODLES_TYPE_3:

       return new HandPulledNoodleSoupWithBeef("刀削面");

   case NOODLES_TYPE_4:

       return new NoodleWithPork("哨子面");

   case NOODLES_TYPE_5:

       return  new BiangBiangNoodles("biangbiang面");

   case NOODLES_TYPE_6:

       return new HotAndDryNoodles("热干面");

   default:

       return  new HotAndDryNoodles("热干面");

}

}

设计模式之工厂模式一简单工厂模式

另一个方法类似。

查看测试类:

设计模式之工厂模式一简单工厂模式

查看运行结果:

设计模式之工厂模式一简单工厂模式

运行结果,达到我们预期的。

现在我们来总结下简单工厂模式:

简单工厂模式几个角色:

设计模式之工厂模式一简单工厂模式

1:共有的抽象父类或者接口。如:司小司面馆的面条接口对象

2:继承或是实现该接口的具体子类。如:西红柿鸡蛋面、biangbiang面等

3:创建对象的简单工厂类。如:司小司的面馆

触发事件:

设计模式之工厂模式一简单工厂模式

通过菜单的序号或者是面条名称触发工厂类制作对象的。

在来看看简单工厂模式特点:

设计模式之工厂模式一简单工厂模式

通过一个类。是具体的类,并非接口或者抽象类的一个重要的创建方法,利用if判断语句说着是switch语句来进行判断,进而创建对应的产品。

联系凯哥--》凯哥Java(kaigejava)

个人博客:www.kaigejava.com

其中,这个重要的创建方法通常都是静态的。所以,简单工厂模式也被称之为静态工厂.

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


新闻名称:设计模式之工厂模式一简单工厂模式-创新互联
URL网址:http://cdkjz.cn/article/dopisj.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

业务热线:400-028-6601 / 大客户专线   成都:13518219792   座机:028-86922220