随笔分类 - 01-C#
摘要:一、引言 今天我们要讲结构型设计模式的第三个模式--装饰模式。当第一次看到这个名称时想到的是另外一个词语“装修”,个人观点谈谈对“装修”的理解吧,请大家看清楚现在说是“装修”而不是“装饰”。当我们长大了就要准备结婚(男大当婚女大当嫁嘛),而结婚往往涉及到要买房的事。如果买的是毛坯房,假如想要房子的内
        阅读全文
                
摘要:一、引言 今天我们要讲结构型设计模式的第二个模式--桥接模式,也有叫桥模式的。桥在我们现实生活中经常是连接着A地和B地,再往后来发展,桥引申为一种纽带,比如,丝绸之路是连接亚洲和欧洲的桥梁。有了桥,我们出行更方便了,不需要绕路或搭船。针对桥的使用环境来说,桥解决了跨越和衔接的问题。在设计模式中的桥接
        阅读全文
                
摘要:一、引言 从今天开始我们开始讲结构型设计模式,结构型设计模式有如下几种:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。 创建型设计模式解决的是对象创建的问题,而结构型设计模式解决的是类和对象组合关系的问题。 今天我们开始讲结构型设计模式里面的第一个设计模式:适配器模式。适配
        阅读全文
                
摘要:一、引言 很多人说原型设计模式会节省机器内存,他们说是拷贝出来的对象是原型的复制,不会使用内存。我认为这是不对的,因为拷贝出来的每一个对象都是实际存在的,每个对象都有自己独立的内存地址且会被GC回收。如果就浅拷贝来说,可能会公用一些字段(引用类型),但深拷贝是不会的。所以说原型设计模式会提高内存使用
        阅读全文
                
摘要:一、引言 在现实生活中,我们经常会遇到一些构成比较复杂的物品。比如电脑,是由CPU、主板、内存条、硬盘、显卡、机箱等组装而成的。手机也是复杂物品,由主板、各种芯片、RAM、ROM、摄像头等部件组成。但是无论是电脑还是手机,它们的组装过程是固定的。拿手机来说,组装流水线是固定的、不变的,但是把不同的主
        阅读全文
                
摘要:一、引言 接上一篇C#设计模式学习笔记:简单工厂模式(工厂方法模式前奏篇),通过简单工厂模式的了解,它的缺点就是随着需求的变化我们要不停地修改工厂。 上一篇文章我们讲了工厂方法模式,它是为了解决简单工厂模式所面对的问题:如果我们增加新的产品,工厂类的方法就要修改本身的代码,增加产品越多,其逻辑越复杂
        阅读全文
                
摘要:一、引言 接上一篇C#设计模式学习笔记:简单工厂模式(工厂方法模式前奏篇),通过简单工厂模式的了解,它的缺点就是随着需求的变化我们要不停地修改工厂里面的方法的代码,需求变化越多,里面的if--else也越多,这样就会造成简单工厂的实现逻辑过于复杂。 依设计原则里的开闭原则--对增加代码开放,对修改代
        阅读全文
                
摘要:一、引言 简单工厂模式并不属于GoF23里面的设计模式,其实它属于一个过渡的模式,这个模式是为了引出下一篇要讲的模式:工厂模式。 二、简单工厂模式的介绍 无论是简单工厂还是复杂工厂,首先它们都是工厂,工厂是干什么的呢? 在现实生活中的工厂是负责生产产品的。比如我们要吃饼干不用自己做,去超市买就好了,
        阅读全文
                
摘要:一、引言 设计模式的分类: 1)依目的: 创建型(Creational)模式:负责对象创建 结构型(Structural)模式:处理类与对象间的组合 行为型(Behavioral)模式:类与对象交互中的职责分配 2)依范围: 类模式:处理类与子类的静态关系 对象模式:处理对象间的动态关系 注:本系列
        阅读全文
                
摘要:写代码也是有原则的,我们之所以使用设计模式,主要是为了适应变化,提高代码复用率,使软件更具有可维护性和可扩展性。如果我们能更好的理解这些设计原则,对我们理解面向对象的设计模式也是有帮助的,因为这些模式的产生是基于这些原则的。 设计原则包括:单一职责原则(SRP)、开闭原则(OCP)、里氏替换原则(L
        阅读全文
                
摘要:数据加密技术是网络中最基本的安全技术,主要是通过对网络中传输的信息进行数据加密来保障其安全性,这是一种主动安全防御策略,用很小的代价即可为信息提供相当大的安全保护。 一、加密的基本概念 "加密",是一种限制对网络上传输数据的访问权的技术。原始数据(也称为明文,plaintext)被加密设备(硬件或软
        阅读全文
                
摘要:一、文件系统 1.1、文件系统类的介绍 文件操作类大都在System.IO命名空间里,FileSystemInfo类是所有文件系统类的基类。FileInfo与File表示文件系统中的文件,DirectoryInfo与Directory表示文件系统中的文件夹,Path表示文件系统中的路径,DriveI
        阅读全文
                
摘要:序列化是把一个内存中的对象的信息转化成一个可以持久化保存的形式,以便于保存或传输。序列化的主要作用是不同平台之间进行通信,常用的序列化有json、xml、文件等,下面就逐个讲下这三种序列化的方法。 一、序列化为json C#中用于对象和json相互转换的原生类有两个:DataContractJson
        阅读全文
                
摘要:索引器允许类或者结构的实例按照与数组相同的方式进行索引取值,索引器与属性类似,不同的是索引器的访问是带参的。 索引器和数组比较: 1)索引器的索引值(Index)类型不受限制 2)索引器允许重载 3)索引器不是一个变量 索引器和属性的不同点: 1)属性以名称来标识,索引器以函数形式标识。 2)索引器
        阅读全文
                
摘要:摘要: 抽象类:是一种特殊的类,可以定义具有实现的方法,也可以定义未实现的方法契约,本身不能被实例化,只能在派生类中进行实例化。接口:对一组方法签名进行统一的命名,只能定义未实现的方法契约,本身也不能被实例化,只能在实现类中进行实例化。 二者都可以有部分数据成员(如:属性),它们貌似有着相同的“契约
        阅读全文
                
摘要:一、生成xml 1.1创建简单的xml /// <summary> /// CreateXml类 /// </summary> public class CreateXml { /// <summary> /// 返回xml文件路径 /// </summary> public string Path
        阅读全文
                
摘要:一、查询具有指定属性或名称的文件 此示例演示如何查找指定目录树中具有指定文件扩展名(例如“.txt”)的所有文件,还演示如何根据创建时间返回树中最新或最旧的文件。 class Program { static void Main(string[] args) { #region LINQ 查询具有指
        阅读全文
                
摘要:一、统计单词在字符串中出现的次数 请注意,若要执行计数,请先调用Split方法来创建词数组。Split方法存在性能开销,如果对字符串执行的唯一操作是计数词,则应考虑改用Matches或IndexOf方法。 class Program { static void Main(string[] args)
        阅读全文
                
摘要:“标准查询运算符”是组成语言集成查询 (LINQ) 模式的方法,大多数这些方法都在序列上运行,其中的序列是一个对象,其类型实现了IEnumerable<T>接口或 IQueryable<T> 接口。标准查询运算符提供了包括筛选、投影、聚合、排序等功能在内的查询功能,各个标准查询运算符在执行时间上有所
        阅读全文
                
摘要:LINQ 简介: 语言集成查询(LINQ)是Visual Studio 2008和.NET Framework 3.5版中引入的一项创新功能。 传统上,针对数据的查询都是以简单的字符串表示,而没有编译时类型检查或IntelliSense支持。此外,您还必须针对以下各种数据源学习一种不同的查询语言:S
        阅读全文
                

 浙公网安备 33010602011771号
浙公网安备 33010602011771号