如何合理创建c#对象.doc

上传人:文库蛋蛋多 文档编号:2385293 上传时间:2023-02-17 格式:DOC 页数:2 大小:15.50KB
返回 下载 相关 举报
如何合理创建c#对象.doc_第1页
第1页 / 共2页
如何合理创建c#对象.doc_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《如何合理创建c#对象.doc》由会员分享,可在线阅读,更多相关《如何合理创建c#对象.doc(2页珍藏版)》请在三一办公上搜索。

1、如何合理创建c#对象创建对象:通常情况下,人们都不是太重视对象的创建,而是更重视类的设计,但是创建对象确实又很重要。当前比较流行的方法是:工厂创建模式工厂创建模式中的“工厂”就像真正的工厂,只是创建对象,而且,即使工厂实现有所改变,客户也不会受到影响。工厂设计模式有两种办法:1.单工厂模式 /(这里不好画图,不知道我下面写的能不能正确显示)Client1 product1 Factory product2Client2 product3客户端需要的是product,他们不需要了解product类是如何建立的,只需要给工厂提供一定的信息,然后创建product对象,看个例子: using Sys

2、tem;using System.Collections.Generic;using System.Text;namespace ConsoleApplication3 public interface IApparel /定义一个产品接口 string ShowMe(); bool Knit get; public class SportsShirt : IApparel /产品1(通过接口继承而来) public string ShowMe() return (Sports Shirt); public bool Knit get return true; public class Dre

3、ssShirt : IApparel /产品2 public string ShowMe() return (Dress Shirt); public bool Knit get return false; public class ApparelFactory /创建工厂类 public IApparel CreateApparel(string apptype) /定义一个返回对象的方法,该方法返回类型为IApparel,这样任何实现了IApparel接口的类的对象都可以返回。 switch (apptype) caseMDRSHIRT: return new DressShirt();

4、caseMSPSHIRT: return new SportsShirt(); return null; class Program static void Main(string args) ApparelFactory factory = new ApparelFactory(); IApparel ob1 = factory.CreateApparel(MDRSHIRT); IApparel ob2 = factory.CreateApparel(MSPSHIRT); Console.WriteLine(ob1.ShowMe(); Console.WriteLine(ob1.Knit);

5、 Console.WriteLine(ob2.ShowMe(); Console.WriteLine(ob2.Knit); System.Threading.Thread.Sleep(100000); 2.多工厂模式Client1 Factory1 product1Client2 Factory2 product2Client3 Factory3 product3对于简单的例子,用第一种方法比较好点,不过有时用多工厂更合适,比如可能有一个分布式应用。下面的例子创建一个多工厂模式: using System;using System.Collections.Generic;using Syste

6、m.Text;namespace ConsoleApplication3 public interface IApparel /定义一个产品接口 string ShowMe(); bool Knit get; public class SportsShirt : IApparel /产品1(通过接口继承而来) public string ShowMe() return (Sports Shirt); public bool Knit get return true; public class DressShirt : IApparel /产品2 public string ShowMe() r

7、eturn (Dress Shirt); public bool Knit get return false; public abstract class AppFactory /创建工厂抽象类 public abstract IApparel CreateApparel(); /创建生产产品抽象类 public class DressShirtFactory : AppFactory /Dress工厂 public override IApparel CreateApparel() /throw new Exception(The method or operation is not imp

8、lemented.); return new DressShirt(); public class SportsShirtFactory : AppFactory /Sports工厂 public override IApparel CreateApparel() /throw new Exception(The method or operation is not implemented.); return new SportsShirt(); public class ApparelCollector /创建一个工厂和客户之间的中间人 public IApparel CollectAppa

9、rel(AppFactory factory) return factory.CreateApparel(); class Program static void Main(string args) AppFactory factory = new DressShirtFactory(); IApparel ob1 = new ApparelCollector().CollectApparel(factory); Console.WriteLine(ob1.ShowMe(); Console.WriteLine(ob1.Knit); AppFactory factory1 = new SportsShirtFactory(); IApparel ob2 = new ApparelCollector().CollectApparel(factory1); Console.WriteLine(ob2.ShowMe(); Console.WriteLine(ob2.Knit); System.Threading.Thread.Sleep(100000);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号