- 1、本文档共429页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C经典入门经典
什么是抽象工厂设计模式 抽象工厂角色:担任这个角色的是工厂方法模式的核心,它是与应用系统的商业逻辑无关的。通常使用接口或抽象类实现。 具体工厂角色:这个角色直接在客户端的调用下创建产品的实例。这个角色含有选择合适的产品对象的逻辑,而这个逻辑是与应用系统的商业逻辑紧密相关的。通常使用具体的类实现。 抽象产品角色:担任这个角色的类是抽象工厂方法模式所创建的对象的父类,或它们共同拥有的接口。通常使用接口或抽象类实现这一角色。 具体产品角色:抽象工厂模式所创建的任何产品对象都是某一具体产品类的实例。这是客户端最终需要的东西。通常使用具体类实现这个角色。 什么是抽象工厂设计模式 1、提供一系列相互依赖对象的创建工作 2、封装对象常规的创建方法(new) 3、提供统一调用数据访问方法的方式 4、避免调用数据访问方法和具体对象创建工作的紧耦合 什么是抽象工厂设计模型 提供一个创建一系列相关或相互依赖对象的接口,无需指定它们具体的类 客户请求 抽象工厂 抽象产品 如何用抽象工厂设计模式构建我们的数据访问层? 未处理异常 当CLR找不到处理异常的catch过滤器时 using System; class MyApp { public static void Main() { try { int dZero = 1/0; } finally { Console.WriteLine(“finally); } } } 定制处理未处理异常 终止应用程序之前记录有关异常的信息。如果有足够的有关应用程序状态的信息,则可以采取其他措施,如保存程序数据以便于以后进行恢复。 建议谨慎行事,因为未处理异常时可能会损坏程序数据。 没有通用的方法适用于所有C#程序。 Windows窗体应用: Applicatioin.ThreadException += new ThreadExceptionEventHandler(method); Windows控制台应用: Thread.GetDomain().UnhandledException += new UnhandledExceptionEventHandler(method); using System; public class TestExcep { public static int Calc(int j) { return 100/j; } } public class UnForgiven { public static void MyUnhandleMethod(object sender, UnhandledExceptionEventArgs e) { #if DEBUG Console.WriteLine(Debug: + e.ToString()); #else Console.WriteLine(Release: + e.ToString()); #endif } } class MyApp { public static void Main() { Thread.GetDomain().UnhandledException += new UnhandledExceptionEventHandler(UnForgiven.MyUnhandleMethod); try { int dZero = TestExcep.Calc(0);} finally { Console.WriteLine(a); } } }s 定制类中实现System.Object方法 ToString():默认情况下,返回类名。应覆盖此方法,显示出对象与访类其他实例不同的特有内容。 Equals():定制类需定义“相等”的含义:可能两个对象有相同的字段值变相等,也可能引用了相同的内存地址才相等。 定制ToString() 默认返回namespace.classname 定制ToString方法实例: using System.Text; using System; public class Chair { private double myPrice; private string myVendor, myID; public Chair(double price, string vendor, string sku)
文档评论(0)