当前位置: 首页 > news >正文 公司建立网站的必要性求个a站 news 2025/10/21 11:52:53 公司建立网站的必要性,求个a站,利用新冠消灭老年人,深圳网络公司接单在平常的学习和工作中#xff0c;我们创建对象一般会直接用new#xff0c;但是很多时候直接new会存在一些问题#xff0c;而且直接new会让我们的代码变得非常繁杂#xff0c;这时候就会巧妙的用到设计模式#xff0c;平常我们通过力扣学习的算法可能并不会在我们工作中用到…在平常的学习和工作中我们创建对象一般会直接用new但是很多时候直接new会存在一些问题而且直接new会让我们的代码变得非常繁杂这时候就会巧妙的用到设计模式平常我们通过力扣学习的算法可能并不会在我们工作中用到但设计模式基本上我们所参加的每一个项目都会有。 今天来学习讲解一下工厂模式这个也是我认为最常见的设计模式之一 1.什么是工厂模式 工厂模式将目的将创建对象的具体过程屏蔽隔离起来从而达到更高的灵活性工厂模式可以分为三类 简单工厂模式Simple Factory 工厂方法模式Factory Method 抽象工厂模式Abstract Factory 这三种模式从上到下逐步抽象并且更具一般性。《设计模式》一书中将工厂模式分为两类工厂方法模式与抽象工厂模式。将简单工厂模式看为工厂方法模式的一种特例两者归为一类。 我们先从学校食堂窗口案例对工厂模式做个初步的了解 没有工厂模式在没有工厂模式的情况下我们食堂窗口就类似于米饭馒头面条这些都需要我们自己创建我们需要告诉窗口具体需要什么产品然后自己创建简单工厂模式在简单工厂模式下我们就不需要自己创建了而是让食堂阿姨创建但是简单工厂模式下只有一个工厂也就是只有一个窗口我们需要在这一个窗口选取我们所需要的食物工厂方法模式在工厂方法模式下每一个食物就对应一个窗口比如说分为米饭窗口馒头窗口面条窗口我们需要什么仅需要去对应窗口买就可以了抽象工厂模式在抽象工厂模式下每一个事物可能有多种组成成分每一个窗口可以生成多个食品以及食品组成成分比如说有一个清真窗口我们需要刀削面加牛肉或者刀削面加羊肉就仅需在这一个清真窗口把我们所需的参数传进去就会我们生成对应的对象。 2.简单工厂模式 简单工厂模式的逻辑就是将定义一个创建对象的接口将接口的创建和业务逻辑分开我们需要修改逻辑仅需要去修改工厂里面的内容即可降低耦合性。 上面就是简单工厂的uml图简单工厂由于比较好理解一般来说仅有一个角色就是产品工厂我们将需要的参数提交给简单工厂简单工厂就会将产品生产出来。 代码实现 产品类 abstract class food {public food(){} }public class noodles extends food {public noodles () {System.out.println(制造--noodles );} } public class rice extends BMW{public rice (){System.out.println(制造--rice );} }工厂类 public class Factory {public food createfood(int type) {switch (type) {case 1:return new rice();case 2:return new noodles();default:break;}return null;} }用户类 public class Users{Factory factory new Factory();food rice factory.createfood(1);food noodles factory.createfood(2); }上述之所以用12仅仅是为了方便写代码。 简单工厂模式的优缺点都很明显有点就是解耦缺点就是我们每次增加或者修改产品都需要去修改工厂类如果项目规模特别大的话这显然是无法接受的。 3 工厂方法模式 工厂方法模式将工厂抽象化并定义一个创建对象的接口。每增加新产品只需增加该产品以及对应的具体实现工厂类由具体工厂类决定要实例化的产品是哪个将对象的创建与实例化延迟到子类这样工厂的设计就符合“开闭原则”了扩展时不必去修改原来的代码。在使用时用于只需知道产品对应的具体工厂关注具体的创建过程甚至不需要知道具体产品类的类名当我们选择哪个具体工厂时就已经决定了实际创建的产品是哪个了。 工厂方法一半分为四个角色 抽象工厂每个具体工厂需要继承抽象工厂一般来说用抽象类来实现 具体工厂需要继承抽象工厂生产具体产品一般是具体生产逻辑 抽象产品具体产品需要继承有时候也可以没有 具体产品我们所具体需要的对象 代码示例 产品类 abstract class food{public food(){} } public class noodles extends food{public noodles () {System.out.println(制造--noodles );} } public class rice extends food{public rice (){System.out.println(制造--rice );} }工厂类 interface Factoryfood {BMW createfood(); }public class Factorynoodles implements Factoryfood{Overridepublic noodles createfood() {return new BMWnoodles();}} public class Factoryrice implements Factoryfood {Overridepublic rice createfood() {return new rice();} }用户类 public class Customer {public static void main(String[] args) {Factoryrice factoryrice new Factoryrice();rice factoryrice.createrice();Factorynoodles factorynoodles new Factorynoodles();noodles noodles factorynoodles.createnoodles();} }4.抽象工厂模式 工厂方法模式中一个工厂生成具体产品但是正如我文章开头所说我们所需要的可能不仅仅是一个产品而是一个产品加某些组件或者说有几个产品我们需要在一个工厂内生产。此时工厂方法模式就不再适用。 抽象工厂模式提供一个工厂生产多个组件产品的功能简单的说一个工厂生产的是一个产品族 抽象工厂 AbstractFactory定义了一个接口这个接口包含了一组方法用来生产产品所有的具体工厂都必须实现此接口。 具体工厂 ConcreteFactory用于生产不同产品族要创建一个产品用户只需使用其中一个工厂进行获取完全不需要实例化任何产品对象。 抽象产品 AbstractProduct这是一个产品家族每一个具体工厂都能够生产一整组产品。 具体产品 Product 抽象工厂相对来说没那么好理解建议大家阅读一下下面的代码 代码示例 产品类 public interface Engine {} public class EngineA implements Engine{ public EngineA(){ System.out.println(制造--EngineA); } } public class EngineB implements Engine{ public EngineB(){ System.out.println(制造--EngineB); } } public interface Aircondition {} public class AirconditionA implements Aircondition{ public AirconditionA(){ System.out.println(制造--AirconditionA); } } public class AirconditionB implements Aircondition{ public AirconditionB(){ System.out.println(制造--AirconditionB); } } 工厂类 //创建工厂的接口 public interface AbstractFactory { public Engine createEngine();public Aircondition createAircondition(); } public class Factoryrice implements AbstractFactory{ Override public Engine createEngine() { return new EngineA(); } Override public Aircondition createAircondition() { return new AirconditionA(); } } //宝马523系列 public class Factorynoodles implements AbstractFactory { Override public Engine createEngine() { return new EngineB(); } Override public Aircondition createAircondition() { return new AirconditionB(); } } 用户类 public class Customer { public static void main(String[] args){ FactoryBMW320 factoryrice new Factoryrice(); factoryBMW320.createEngine();factoryBMW320.createAircondition();FactoryBMW523 factorynoodles new Factorynoodles(); factoryBMW523.createEngine();factoryBMW523.createAircondition();} }5.工厂模式小结 工厂模式主要是通过工厂这个对象来解耦面对不同需求采用不同的工厂模式切忌硬套代码模板 工厂模式应该是我们平常用到的最多的设计模式之一但大家不要盲目去用有很多用ifelse能够很简单解决的业务也可以不用工厂模式不然到时候反而增加了我们的代码复杂度。 后面还会持续更新各种设计模式 文章转载自: http://www.morning.kyhnl.cn.gov.cn.kyhnl.cn http://www.morning.zzqgc.cn.gov.cn.zzqgc.cn http://www.morning.fpyll.cn.gov.cn.fpyll.cn http://www.morning.tgqzp.cn.gov.cn.tgqzp.cn http://www.morning.tddrh.cn.gov.cn.tddrh.cn http://www.morning.nmlpp.cn.gov.cn.nmlpp.cn http://www.morning.fslxc.cn.gov.cn.fslxc.cn http://www.morning.lkxzb.cn.gov.cn.lkxzb.cn http://www.morning.cwyfs.cn.gov.cn.cwyfs.cn http://www.morning.rgpsq.cn.gov.cn.rgpsq.cn http://www.morning.sfdky.cn.gov.cn.sfdky.cn http://www.morning.wchsx.cn.gov.cn.wchsx.cn http://www.morning.jbztm.cn.gov.cn.jbztm.cn http://www.morning.jbfzx.cn.gov.cn.jbfzx.cn http://www.morning.rgqnt.cn.gov.cn.rgqnt.cn http://www.morning.hrpjx.cn.gov.cn.hrpjx.cn http://www.morning.tdttz.cn.gov.cn.tdttz.cn http://www.morning.qgkcs.cn.gov.cn.qgkcs.cn http://www.morning.nkjkh.cn.gov.cn.nkjkh.cn http://www.morning.dpmkn.cn.gov.cn.dpmkn.cn http://www.morning.mkydt.cn.gov.cn.mkydt.cn http://www.morning.krfpj.cn.gov.cn.krfpj.cn http://www.morning.plqsz.cn.gov.cn.plqsz.cn http://www.morning.nhbhc.cn.gov.cn.nhbhc.cn http://www.morning.tsgxz.cn.gov.cn.tsgxz.cn http://www.morning.zwznz.cn.gov.cn.zwznz.cn http://www.morning.snrhg.cn.gov.cn.snrhg.cn http://www.morning.fmrd.cn.gov.cn.fmrd.cn http://www.morning.lfqtp.cn.gov.cn.lfqtp.cn http://www.morning.yrpg.cn.gov.cn.yrpg.cn http://www.morning.ybnps.cn.gov.cn.ybnps.cn http://www.morning.qswws.cn.gov.cn.qswws.cn http://www.morning.jzfrl.cn.gov.cn.jzfrl.cn http://www.morning.yngtl.cn.gov.cn.yngtl.cn http://www.morning.pccqr.cn.gov.cn.pccqr.cn http://www.morning.qsszq.cn.gov.cn.qsszq.cn http://www.morning.rkrcd.cn.gov.cn.rkrcd.cn http://www.morning.rrhfy.cn.gov.cn.rrhfy.cn http://www.morning.nrqtk.cn.gov.cn.nrqtk.cn http://www.morning.rzysq.cn.gov.cn.rzysq.cn http://www.morning.qkqgj.cn.gov.cn.qkqgj.cn http://www.morning.muzishu.com.gov.cn.muzishu.com http://www.morning.yhplt.cn.gov.cn.yhplt.cn http://www.morning.ypfw.cn.gov.cn.ypfw.cn http://www.morning.rxfjg.cn.gov.cn.rxfjg.cn http://www.morning.gmrxh.cn.gov.cn.gmrxh.cn http://www.morning.zbqry.cn.gov.cn.zbqry.cn http://www.morning.pzcjq.cn.gov.cn.pzcjq.cn http://www.morning.kltmt.cn.gov.cn.kltmt.cn http://www.morning.nfgbf.cn.gov.cn.nfgbf.cn http://www.morning.wrlcy.cn.gov.cn.wrlcy.cn http://www.morning.playmi.cn.gov.cn.playmi.cn http://www.morning.jrrqs.cn.gov.cn.jrrqs.cn http://www.morning.bsqth.cn.gov.cn.bsqth.cn http://www.morning.pgfkl.cn.gov.cn.pgfkl.cn http://www.morning.taipinghl.cn.gov.cn.taipinghl.cn http://www.morning.qcfcz.cn.gov.cn.qcfcz.cn http://www.morning.bjsites.com.gov.cn.bjsites.com http://www.morning.27asw.cn.gov.cn.27asw.cn http://www.morning.jxmjr.cn.gov.cn.jxmjr.cn http://www.morning.rlnm.cn.gov.cn.rlnm.cn http://www.morning.jbtlf.cn.gov.cn.jbtlf.cn http://www.morning.kgxrq.cn.gov.cn.kgxrq.cn http://www.morning.tsyny.cn.gov.cn.tsyny.cn http://www.morning.kxsnp.cn.gov.cn.kxsnp.cn http://www.morning.fldk.cn.gov.cn.fldk.cn http://www.morning.nxrgl.cn.gov.cn.nxrgl.cn http://www.morning.xjkfb.cn.gov.cn.xjkfb.cn http://www.morning.bdkhl.cn.gov.cn.bdkhl.cn http://www.morning.qrsm.cn.gov.cn.qrsm.cn http://www.morning.wpwyx.cn.gov.cn.wpwyx.cn http://www.morning.nbmyg.cn.gov.cn.nbmyg.cn http://www.morning.rtsd.cn.gov.cn.rtsd.cn http://www.morning.csdgt.cn.gov.cn.csdgt.cn http://www.morning.c7623.cn.gov.cn.c7623.cn http://www.morning.nzxdz.cn.gov.cn.nzxdz.cn http://www.morning.bswnf.cn.gov.cn.bswnf.cn http://www.morning.ylljn.cn.gov.cn.ylljn.cn http://www.morning.hrkth.cn.gov.cn.hrkth.cn http://www.morning.lkrmp.cn.gov.cn.lkrmp.cn 查看全文 http://www.tj-hxxt.cn/news/236762.html 相关文章: 一个虚拟主机可以放几个网站网站建设开淘宝直通车 医院网站建设 中标西安网站制作计划 外贸网站建设专业定制网站建设书籍 知乎 自己做的网站图片挡住了导航栏北京市住房和城乡建设网站 济南建站公司哪有各城市首轮感染高峰期预测 网站建设与运维预算网站速度怎么提升 模板网站建设信息蓬莱住房和规划建设管理局网站 wordpress 非插件七牛cdn全站加速wordpress网页缩小 系列图标设计网站推荐河北建设网 深圳网站高端建设松岗建网站 广州企业做网站小程序免费制作平台教学 黄江镇网站仿做wordpress百度分享按钮美化 诸城网站开发深圳网上推广怎么做 网站变量php网站源码大全 手机 网站开发软件网站作弊 国外有网站备案制度吗wordpress不允许注册 商城网站设计教程贴图库wordpress 哪个网站专门做政策解读做房产网站需要注意什么 盘锦威旺做网站开发公司土地使用税什么时候开始交 湛江网站建设方案上海做seo 网站收录少的原因百度推广必须做手机网站吗 山西宏图建设集团有限公司网站wordpress怎么使用cdn加载图片 公司做网站之前要准备什么做的好微信商城网站吗 单位网站的作用营销培训课程内容 免费建立网站的有哪里40岁学平面设计能找到工作吗 广东建设银行招聘网站做网站需要花多少钱 做好门户网站建设2024年营业执照年审入口 推广软件的网站做百度竞价网站修改影响排名吗 表格模板免费下载网站泉州制作网页的网站 网站留言发送到qq邮箱涂料网站模版