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

深圳企业建站模板建设工程施工合同管理的原则

深圳企业建站模板,建设工程施工合同管理的原则,九龙坡区发布,企业网站建设内存文章目录 前言简单工厂模式工厂方法模式抽象工厂模式Unity实战 前言 工厂模式是一种创建型设计模式#xff0c;它提供了一种将对象的实例化过程封装起来的方法#xff0c;使得客户端代码不必直接依赖于具体类。这有助于降低代码的耦合度#xff0c;提高代码的可维护性和可扩… 文章目录 前言简单工厂模式工厂方法模式抽象工厂模式Unity实战 前言 工厂模式是一种创建型设计模式它提供了一种将对象的实例化过程封装起来的方法使得客户端代码不必直接依赖于具体类。这有助于降低代码的耦合度提高代码的可维护性和可扩展性。在C#中有三种常见的工厂模式简单工厂模式、工厂方法模式和抽象工厂模式。下面详细解释这三种工厂模式。 简单工厂模式 简单工厂模式是最基本的工厂模式它通过一个工厂类来创建对象。客户端只需要知道要创建的产品的类型而不需要知道具体的实现类。 首先定义一个抽象产品类。该类主要定义了产品的共有属性和方法用于子类继承和实现。 public abstract class Car {public abstract void GetName();public void Refuel(){Console.WriteLine(汽车加油);} }其次定义每个产品的具体实现子类。该类实现并继承自抽象类如需增加产品可直接创建新的子类并继承自抽象类即可。 public class FordCar: Car {public override void GetName(){Console.WriteLine(我是福特汽车);} }public class HondaCar: Car {public override void GetName(){Console.WriteLine(我是本田汽车);} }然后定义核心类即工厂类。该类通过创建了一个枚举类型参数来选择需要创建的产品实例。 public class CarFactory {public static Car CreateCar(CarType carType){switch (carType){case CarType.FordCar:return new FordCar();break;case CarType.HondaCar:return new HondaCar();break;default:break;}return null;}public enum CarType{FordCar,HondaCar} }最后客户端调用。 class Program {static void Main(string[] args){//通过CarFactory产品工厂创建了FordCar产品实例Car car CarFactory.CreateCar(CarFactory.CarType.FordCar);car.GetName();//通过CarFactory产品工厂创建了HondaCar产品实例car CarFactory.CreateCar(CarFactory.CarType.HondaCar);car.GetName();car.Refuel();} }对于客户端来说其去除了与具体产品之间的依赖。 简单工厂模式的缺点主要就是违背了开闭原则 工厂方法模式 这是一种更高级的工厂模式它通过抽象接口或基类中的工厂方法来创建对象。 具体实现由子类负责因此更加灵活。这种设计方式有利于实现开闭原则即对扩展开放对修改封闭。 抽象产品类 public abstract class Car {public abstract void GetName();public void Refuel(){Console.WriteLine(汽车加油);} }具体产品类 public class FordCar: Car {public override void GetName(){Console.WriteLine(我是福特汽车);} }public class HondaCar: Car {public override void GetName(){Console.WriteLine(我是本田汽车);} }抽象工厂 public abstract class CarFactory {public abstract Car CreateCar(); }具体产品工厂 public class FordCarFactory: CarFactory {public override Car CreateCar(){return new FordCar();} }public class HondaCarFactory: CarFactory {public override Car CreateCar(){return new HondaCar();} }客户端调用 class Program {static void Main(string[] args){//创建一个汽车工厂只负责生产福特汽车产品CarFactory carFactory new FordCarFactory();//在福特汽车工厂中生产一个福特汽车产品Car car carFactory.CreateCar();car.GetName();//创建一个汽车工厂只负责生产本田汽车产品carFactory new HondaCarFactory();//在本田汽车工厂中生产一个本田汽车产品car carFactory.CreateCar();car.GetName();//汽车加油car.Refuel();} }抽象工厂模式 抽象工厂模式提供一个接口用于创建相关或依赖对象的家族而不需要指定具体类。它是工厂方法模式的推广不仅仅创建一个对象而是创建一系列相关的对象。 抽象产品类有多少个不同产品就创建多少个抽象产品类。实例中创建了两种产品即汽车和轮胎。 public abstract class Car {public abstract void GetName();public void Refuel(){Console.WriteLine(汽车加油);} }public abstract class Tire {public abstract void GetName(); }具体产品类不同产品继承不同抽象类。实例中定义了两种汽车和两种轮胎汽车为一个产品等级轮胎是另外一个产品等级。 public class FordCar: Car {public override void GetName(){Console.WriteLine(我是福特汽车);} }public class HondaCar: Car {public override void GetName(){Console.WriteLine(我是本田汽车);} } public class FordTire: Tire {public override void GetName(){Console.WriteLine(我是福特轮胎。);} }public class HondaTire: Tire {public override void GetName(){Console.WriteLine(我是本田轮胎。);} }抽象工厂类有多少个系列就可以创建多少个抽象工厂类。 public abstract class CarFactory {//生产汽车public abstract Car CreateCar();//生产轮胎public abstract Tire CreateTire(); }具体工厂类同一系列可以创建多个具体的工厂负责同一系列下的不同产品出的创建。 public class FordCarFactory: CarFactory {public override Car CreateCar(){return new FordCar();}public override Tire CreateTire(){return new FordTire();} }public class HondaCarFactory: CarFactory {public override Car CreateCar(){return new HondaCar();}public override Tire CreateTire(){return new HondaTire();} }客户端调用 class Program {static void Main(string[] args){//首先创建一个汽车工厂CarFactory carFactory new FordCarFactory();//然后对应工厂中生产出对应的不同产品。Car car carFactory.CreateCar();car.GetName();Tire tire carFactory.CreateTire();tire.GetName();carFactory new HondaCarFactory();car carFactory.CreateCar();car.GetName();tire carFactory.CreateTire();tire.GetName();} }Unity实战 https://dingxiaowei.cn/2017/05/14/
http://www.w-s-a.com/news/878005/

相关文章:

  • 网站建设公司行业建设网站需要提供什么资料
  • 别人的做网站网页打不开图片
  • 北京专业网站设计推荐怎么建立网站网址
  • 上海网站建设开发公司哪家好网站数据搬家
  • 杭州建站平台哪里有免费的网站推广软件
  • 深圳极速网站建设服务什么网站可以做产品入驻
  • 淄博易宝网站建设app推广拉新公司
  • 营销型外贸网站建设软件备案域名出租
  • 网站域名禁止续费m99ww094cn 苍井空做的网站
  • 上海建设工程网站大同网站建设熊掌号
  • 设计类书籍网站江苏网站建设简介模板
  • 手机企业网站推广c 手机app开发
  • 网站建设需要多少天凡客建设网站稳定吗
  • 房天下网站建设女生说wap是什么意思
  • 网站开发安全机制北京做网站多少钱合理
  • 扁平化 公司网站建设大型视频网站需要的资金量
  • 免费建各种网站淄博网站建设yx718
  • 凡科网建站入门教程运城市网站建设
  • 黄浦区未成年人思想道德建设网站oa系统是什么
  • 微信里的网站怎么做电子商务网站开发平台
  • 易企秀网站怎么做轮播图网站建设张世勇
  • 网站备案幕布尺寸建立网页的几个步骤
  • pc网站页面找出网站所有死链接
  • 专业做seo的网站网站内连接
  • 阿里云网站开发服务器想开网站建设公司
  • 网站开发不足之处茶叶seo网站推广与优化方案
  • 响应式网站建设系统网站优化怎么做 有什么技巧
  • 班级网站做哪些方面wordpress标签 扩展
  • 如何在电商上购物网站Wordpress 域名授权插件
  • 网站建设后台怎么弄昆明如何做好关键词推广