当前位置: 首页 > news >正文

33岁改行做网站建设公司建立网站的必要性

33岁改行做网站建设,公司建立网站的必要性,华夏名网vps免费网站管理助手,做catalog的免费网站在平常的学习和工作中#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.hkea.cn/news/14439638/

相关文章:

  • 石家庄学做网站建设培训站长网站工具
  • 自己有云主机 怎么网站备案盐城网站建设兼职
  • 网站更换服务器 seo房地产趋势与前景
  • 代写网站建设合同wordpress应用微信支付宝
  • 天津网站建设电话高端品牌名称
  • 建设旅游网站建议网站设计与网页配色实例精讲pdf
  • 网站开发与维修是什么意思优设网app
  • 淄博网站建设哪家好做网站激励语
  • 湖南响应式网站建设哪家有企业网络营销策划必须以什么为核心
  • 陕西交通建设集团蓝商分公司网站域名注册平台有哪些
  • 网站建设合并但与那个用网站建设费用
  • 大兴安岭做网站wordpress验证评论邮箱
  • 大连网站推广公司凡科快图网页版
  • 03340 网站建设与管理重庆交通大学官网网站
  • 中国建筑出国招聘网自动app优化官网
  • 网站小视频怎么做福田做网站怎么样
  • 网络科技公司网站建设策划网站开发工作室挣钱吗
  • 网站制作网站设计已有域名如何在花生壳网站做二级域名托管
  • 苏州建设工程公司石家庄网站优化招聘
  • 营销型网站报价设计官网首页
  • 设计某网站的登录和注册程序百石网怎么做网站
  • 医院网站建设策划方案泰安市最新消息今天
  • 厦门安岭路网站建设网站推广广告词
  • h5建站模板做外贸好还是跨境电商好
  • 保定 营销型网站建设做网站要求
  • 惠州网站建设电话南京seo推广优化
  • 温州做网站公司北京网站优化流程
  • 站酷网页版汕头百度网站排名
  • 重庆网站建设cqhtwl如何创立自己的网址
  • 珠海网站建设成功案例怎么做传奇网站