摘要:
记录大话设计学习过程。 代理模式:代理者为其他对象提供代理,以控制对真实对象的访问。 用户调用代理者,代理者通过真实的对象引用让对象去做事情。但是代理者可以附加一些功能,然后才让真实对象去做事情。 代理模式运用案例:WebService生成代理访问服务,虚拟代理、安全代理(控制真实对象访问时的权限) 阅读全文
摘要:
装饰模式的核心:被装饰对象(最原始),装饰对象(带有装饰功能的被装饰对象)。 假设有一个被装饰对象叫“ConcreteComponent ”,两个装饰对象叫“ConcreteDecoratorA”、“ConcreteDecoratorB”。装饰是锦上添花的事情,ConcreteComponent 被 阅读全文
摘要:
记录大话设计的学习过程。 高层模块不依赖于低层模块,这两种模块都应该依赖于抽象。 抽象不依赖于细节,细节应该依赖抽象。 针对抽象编程而不是针对细节编程,即所有的依赖关系终止与抽象类或接口,这就是面向对象的设计,反之是面向过程话的设计了(函数是一种面向过程设计)。 阅读全文
摘要:
记录大话设计模式的学习! 链接:https://pan.baidu.com/s/1JNaagbvOkwAHMBe6vdH8lg 提取码:ko5t 开发-封闭原则是指类、函数、模块等等可以扩展、但是不可修改。 无论模块多么的封闭,都可能存在一些无法预料的变化,即使不能完全封闭,依然要对能预想到的变化封 阅读全文
摘要:
记录大话设计的学习。大话设计模式pdf分享:https://pan.baidu.com/s/11h9x-4RffXydf3GFH5_y7g 提取码:x5c3 。 上一篇通过超市优惠结账的例子学习了算法的封装和产生实例的简单工厂。这一篇在简单工厂上继续加工,让它变成一种策略模式。 每一种优惠算法都是一 阅读全文
摘要:
记录大话设计模式学习,大话设计模式pdf分享:链接:https://pan.baidu.com/s/11h9x-4RffXydf3GFH5_y7g 提取码:x5c3 实现简单计算器的加减乘除运算,做到可维护、可扩展、可复用、且灵活。 可维护举例:业务人员要求加法功能只允许绝对值相加,这时修改代码的区 阅读全文
摘要:
Main函数代码 using System; namespace ConsoleApp4 { class Program { public static void Main(string[] args) { Console.WriteLine(args[0]); Console.WriteLine( 阅读全文
摘要:
记录 编码约定 学习过程。 命名空间约定 如果没有使用using指令,项目也没有默认导入合适的命名空间,访问这些命名空间或者类型时,则需要“完全限定名称”。 namespace ConsoleApp4 { class Program { static void Main(string[] args) 阅读全文
摘要:
如果要扩展LINQ查询方法集,只需要为IEnumerable<T>扩展方法。 第一种:扩展聚合方法,类似已有的Max、Min,可以给具体类型扩展,也可以给泛型扩展。 using System; using System.Collections; using System.Collections.Ge 阅读全文
摘要:
ArrayList实现了System.Collections空间下的IEnumerable接口,这个接口是非泛型的。如果要使用LINQ,必须声明枚举变量的类型,依赖Cast查询运算符转换枚举类型。 using System; using System.Collections; using Syste 阅读全文