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

淘宝优惠券查询网站怎么做可以访问违规网站的浏览器

淘宝优惠券查询网站怎么做,可以访问违规网站的浏览器,网站开发一般用哪些语言,哪个网站做的最好前言: 工厂模式(Factory Pattern)是一种常用的对象创建型设计模式。该模式的主要思想是提供一个创建对象的接口(也可以是抽象类、静态方法等),将实际创建对象的工作推迟到子类中进行。这样一来&#xff0c…

前言:

工厂模式(Factory Pattern)是一种常用的对象创建型设计模式。该模式的主要思想是提供一个创建对象的接口(也可以是抽象类、静态方法等),将实际创建对象的工作推迟到子类中进行。这样一来,客户端只需关注接口而无须了解具体的类实现,实现了代码的解耦,提高了系统的可维护性和扩展性。

工厂模式可以分为简单工厂模式,工厂方法模式和抽象工厂模式。

  • 简单工厂模式:又叫静态工厂方法模式,它是由一个工厂对象决定创建出哪一种产品类的实例,但它不属于工厂模式家族,它属于创建型模式,但不属于23种GOF设计模式之一。

  • 工厂方法模式:提供了一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法让类把实例化推迟到子类。

  • 抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无须指定他们具体的类。

简单工厂模式

简单工厂模式主要由三个部分组成:

  1. 工厂角色(Factory):负责实现创建所有实例的内部逻辑
  2. 抽象产品角色(Product Interface):是工厂类所创建所有对象的父类,封装了各种产品对象的公有方法
  3. 具体产品角色(ConcreteProduct):它是抽象产品角色的一个或多个具体角色,完成具体产品的创建

简单工厂模式适合于产品数量较少且稳定,客户端只需要传入工厂类的参数,对于如何创建对象的逻辑不需要关心的情况。如果产品数量较多且经常变动,使用简单工厂可能会导致工厂方法内部过于复杂,不便于管理和维护。

抽象产品角色

创建一个动物接口,有一个方法speak

public interface IAinimal
{void Speak();
}

具体产品角色

创建两个实现了IAnimal接口的类,分别是DogCat

public class dog : IAinimal
{public void Speak(){Console.WriteLine("汪汪汪");}
}public class cat : IAinimal
{public void Speak(){Console.WriteLine("喵喵喵");}
}

工厂角色

 创建一个简单工厂类SimpleAinimalFactory,里面有一个静态方法CreateAinimal,该方法接收一个字符串参数,根据参数创建不同的对象

public static class SimpleAinimalFactory
{public static IAinimal CreateAinimal(string type){if ("cat".Equals(type)){return new cat();}else if ("dog".Equals(type)){return new dog();}else{throw new Exception("Invalid animal type");}}
}

使用简单工厂

    public static void Main(string[] args){IAinimal dog = SimpleAinimalFactory.CreateAinimal("dog");dog.Speak();IAinimal cat = SimpleAinimalFactory.CreateAinimal("cat");cat.Speak();}

后期如果再加新的动物,我们势必要需求修改SimpleAinimalFactory的代码,违反了开闭原则。

 工厂方法模式

针对上例中的缺点,使用工厂方法模式就可以完美的解决,完全遵循开闭原则。

工厂方法模式的主要角色:

  1. 抽象工厂(Abstract Factory):提供了创建产品的接口,调用者通过它访问具体工厂的工厂 方法来创建产品。
  2. 具体工厂(ConcreteFactory):主要是实现抽象工厂中的抽象方法,完成具体产品的创建。
  3. 抽象产品(Product):定义了产品的规范,描述了产品的主要特性和功能。
  4. 具体产品(ConcreteProduct):实现了抽象产品角色所定义的接口,由具体工厂来创建,它同 具体工厂之间一一对应。

抽象产品和具体产品同上不变,将工厂角色抽出来,改成抽象工厂+具体工厂

抽象工厂

public interface IAinimalFactory
{IAinimal createAinimal();
}

具体工厂

public class CatAinimalFactory : IAinimalFactory
{public IAinimal createAinimal(){return new cat();}
}public class DogAinimalFactory : IAinimalFactory
{public IAinimal createAinimal(){return new dog();}
}

使用工厂

    public static void Main(string[] args){var catAinimalFactory = new CatAinimalFactory();var ainimal = catAinimalFactory.createAinimal();ainimal.Speak();}

与简单工厂不同的地方就是这边先获取一个对应的具体工厂,再通过具体工厂拿到具体产品。在使用时,用于只需知道产品对应的具体工厂,关注具体的创建过程,甚至不需要知道具体产品类的类名,当我们选择哪个具体工厂时,就已经决定了实际创建的产品是哪个了。

 

http://www.wooajung.com/news/28232.html

相关文章:

  • 泉州自助建站软件百度客服电话4001056
  • 网站关键词抓取淄博seo推广
  • 免费建站的方法友链价格
  • 网站导航栏设计步骤高端网站建设的公司
  • dede 网站地图模板找索引擎seo
  • 小程序入口qq浏览器临沂seo建站
  • 做ppt设计师哪个网站好我们公司在做网站推广
  • 山东城市建设职业学院图书馆网站接广告的网站
  • 福建建设工程交易中心网站网络推广费用计入什么科目
  • 做的网站百度不收录福州seo兼职
  • 旅游网站排行榜前十名官网离我最近的广告公司
  • 精选聊城做网站的公司关键词排名手机优化软件
  • 社交信息共享网站开发外包百度搜索指数排行
  • 公司logo设计用什么软件seo优化的主要任务包括
  • 深圳html5网站建设价格seo的中文意思
  • 网站开发文件综述好看的html网页
  • 杭州哪家公司可以做网站渠道网官网
  • 蜜桃传媒seo排名技术软件
  • 河北5市最新消息新人学会seo
  • 阿里云网站主体变更怎么做产品推广朋友圈文案
  • 网站开发入哪个会计科目百度指数的搜索指数代表什么
  • 怎样利用网站做淘宝客近两年网络营销成功案例
  • 怎么自己做wordpress主题seo顾问服
  • 建设银行信用卡积分兑换网站企业网络推广技巧
  • 如何做招聘网站的对比app拉新推广赚佣金
  • 线上推广工作是做什么的搜索排名优化软件
  • 浙江 网站建设seo自学网官方
  • 做app网站设计软文营销范文
  • 为什么有人做商城优惠券网站卖关键词优化软件有哪些
  • 外贸在线网站建站网络营销发展现状与趋势