摘要: 工厂方法模式 工厂方法模式定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。 简单工厂模式的优缺点 简单工厂模式最大的优点在于工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类,对于客户端来说,去除了与具体产品的依赖。 但是如果要加一个功能 阅读全文
posted @ 2018-11-26 22:19 田错 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 代理模式 代理模式为其他对象提供一种代理以控制对这个对象访问。 代理模式结构演示 实体抽象类:Subject 定义了RealSubject和Proxy的共用接口,这样就能在任何使用RealSubject的地方使用Proxy 真实实体类:RealSubject 定义Proxy所代表的真实实体。 代理类 阅读全文
posted @ 2018-11-26 21:32 田错 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 值类型和引用类型 本篇笔记结合了《CLR Via C#》和《C# in Depth》两本书中讲述的值类型和引用类型的区别和特性、值类型的装箱和拆箱这两部分内容。 但我根据装箱部分的理解所整理出来的配图可能会有错误和遗漏,希望能有人来指正。 现实世界中的值和引用 报纸与值类型 先假设你正在读的是一份真 阅读全文
posted @ 2018-11-26 20:50 田错 阅读(2256) 评论(0) 推荐(1) 编辑
摘要: 2.2 类型系统的特征 类型系统被分为强/弱、安全/不安全、静态/动态以及其他一些让人更不好懂的说法。 由于不同的人经常用不同的术语来指代差别不是太大的两种东西,所以很容易产生沟通障碍。 本节只适用于安全代码,如果只考虑安全代码,那么类型系统的各种特征会变得更容易描述和理解。 2.2.1 C#在类型 阅读全文
posted @ 2018-11-26 19:06 田错 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 2.1 委托 委托在某种程度上提供了间接的方法。换言之,不需要直接指定一个要执行的行为,而是将这个行为用某种方式“包含”在一个对象中。 这个对象可以像其他任何对象那样使用。在该对象中,可以执行封装的操作。 可以选择将委托类型看做只定义了一个方法的接口,将委托的实例看做实现了那个接口的一个对象。 让我 阅读全文
posted @ 2018-11-26 12:24 田错 阅读(334) 评论(0) 推荐(0) 编辑
摘要: 1.7 剖析.NET 平台 最开始引入时,.NET这个词涵义甚广,用来包罗微软公司的多种技术。例如,Windows LiveID曾被叫做.NET Passport,虽然它和目前的.NET没有任何明显的联系。 幸好,这个混乱的局面逐渐平息下来了。本节要探讨.NET的各个组成部分。本书会提到3种不同的特 阅读全文
posted @ 2018-11-26 11:00 田错 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 1.4 LINQ 简介 LINQ(Language Integrated Query,语言集成查询),是C# 3的核心。 顾名思义,LINQ是关于查询的,其目的是使用一致的语法和特性,以一种易阅读、可组合的方式,使对多数据源的查询变得简单。 在很大程度上,C# 2更像是对C# 1的各种不足之处的修修 阅读全文
posted @ 2018-11-26 10:36 田错 阅读(332) 评论(0) 推荐(0) 编辑
摘要: 1.3 处理未知数据 我们将要介绍两种不同形式的未知数据。首先,处理确实没有数据信息的场景。其次,再来看看如何从方法调用中移除信息,使用默认值来代替。 1.3.1 表示未知的价格 假如你经常使用数据库的话,问题肯定是你熟悉的。 假定产品列表不仅包含现售的产品,还包括尚未面市的产品。某些情况下,我们可 阅读全文
posted @ 2018-11-26 09:48 田错 阅读(230) 评论(0) 推荐(0) 编辑