有关C#工场形式简朴解说【C#.Net教程】,csharp,.net,讲解
作者:搜教程发布时间:2019-11-27分类:.Net教程浏览:28评论:0
导读:一、简朴工场(SimpleFactory)形式SimpleFactory形式依据供应给它的数据,返回几个能够类中的一个类的实例。一般它返回的类都有一个大众的父类和大众的要...
一、 简朴工场(Simple Factory)形式
Simple Factory形式依据供应给它的数据,返回几个能够类中的一个类的实例。一般它返回的类都有一个大众的父类和大众的要领。
Simple Factory形式实际上不是GoF 23个设想形式中的一员。
二、 Simple Factory形式角色与构造:
工场类角色Creator (LightSimpleFactory):工场类在客户端的直接掌握下(Create要领)建立产物对象。
笼统产物角色Product (Light):定义简朴工场建立的对象的父类或它们配合具有的接口。可所以一个类、笼统类或接口。
细致产物角色ConcreteProduct (BulbLight, TubeLight):定义工场细致加工出的对象。
三、 顺序举例:
Simple Factory形式依据供应给它的数据,返回几个能够类中的一个类的实例。一般它返回的类都有一个大众的父类和大众的要领。
Simple Factory形式实际上不是GoF 23个设想形式中的一员。
二、 Simple Factory形式角色与构造:
工场类角色Creator (LightSimpleFactory):工场类在客户端的直接掌握下(Create要领)建立产物对象。
笼统产物角色Product (Light):定义简朴工场建立的对象的父类或它们配合具有的接口。可所以一个类、笼统类或接口。
细致产物角色ConcreteProduct (BulbLight, TubeLight):定义工场细致加工出的对象。
三、 顺序举例:
using System; public abstract class Light { public abstract void TurnOn(); public abstract void TurnOff(); } public class BulbLight : Light { public override void TurnOn() { Console.WriteLine("Bulb Light is Turned on"); } public override void TurnOff() { Console.WriteLine("Bulb Light is Turned off"); } } public class TubeLight : Light { public override void TurnOn() { Console.WriteLine("Tube Light is Turned on"); } public override void TurnOff() { Console.WriteLine("Tube Light is Turned off"); } } public class LightSimpleFactory { public Light Create(string LightType) { if(LightType == "Bulb") return new BulbLight(); else if(LightType == "Tube") return new TubeLight(); else return null; } } public class Client { public static void Main() { LightSimpleFactory lsf = new LightSimpleFactory(); Light l = lsf.Create("Bulb"); l.TurnOn(); l.TurnOff(); Console.WriteLine("-----------------"); l = lsf.Create("Tube"); l.TurnOn(); l.TurnOff(); } }
五、 长处与瑕玷:
长处:
工场类含有必要的推断逻辑,能够决定在什么时候建立哪个产物类的实例,客户端能够免去直接建立产物对象的义务,而仅仅"消耗"产物。简朴工场形式经由过程这类做法完成了对义务的支解。
瑕玷:
当产物有庞杂的多层品级构造时,工场类只要本身,以不变应万变,就是形式的瑕玷。由于工场类集中了一切产物建立逻辑,一旦不能一般事情,全部体系都要受到影响。
同时,体系扩大难题,一旦增加新产物就不得不修正工场逻辑,有能够构成工场逻辑过于庞杂。
别的,简朴工场形式一般运用静态工场要领,这使得没法由子类继续,构成工场角色没法构成基于继续的品级构造。
以上就是有关C#工场形式简朴解说的细致内容,更多请关注ki4网别的相干文章!
相关推荐
- mysql索引命中规则讲解_MySQL教程,mysql,索引,命中,规则,讲解
- 关于mysql中的时间进位问题的讲解_MySQL教程,mysql,时间,进位,讲解
- 关于random类与scanner类的实例讲解_JAVA教程,random,scanner,类,实例,讲解
- mysql装置后.net顺序运转失足怎样处理【MySQL教程】,mysql,.net,运行
- mysql分页查询实例解说【MySQL教程】,mysql,讲解,实例
- .net读写xml文档详解【XML教程】,.net,xml
- .net和c#有什么区别【C#.Net教程】,.net,c#
- C#中VB.NET给Word文档增加/打消书签的实例【C#.Net教程】,VB.NET,csharp,Word
- C#怎样完成loading提醒控件简朴的实例【C#.Net教程】,loading,csharp,.net
- C#怎样完成增加和修正以及删除PDF书签的要领引见【C#.Net教程】,csharp,.net,以及
你 发表评论:
欢迎- .Net教程排行
-
- 1案例分享c++ map的运用和 查找机能测试【C#.Net教程】,性能,map,c++
- 2细致引见C# string花样的日期时候字符串转为DateTime范例的要领【C#.Net教程】,C#,string,DateTime
- 3详解ASP.NET中衔接数据库设置要领【C#.Net教程】,ASP.NET,数据库,配置
- 4c#怎样运用?c#的基础语法【C#.Net教程】,c#,关键字
- 5C# DataSet机能最好实践【C#.Net教程】,C#,DataSet
- 6C#_挪用封装的一个类完成导出Excel表格的功用【C#.Net教程】,C# Excel表格
- 7让WebAPI 返回JSON花样的数据实例教程【C#.Net教程】,javascript,WebAPI,JSON,api,web,搭建,返回
- 8asp .net 面试题及答案分享【C#.Net教程】,.net,自己,整理,问题,面试
- 9在C++中对象怎样作为参数通报和返回?(代码示例)【C#.Net教程】,C++,对象
- 最新文章
- 广而告之