💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
# 第三章 用 C# 表达设计 **By D.S.Qiu** **尊重他人的劳动,支持原创,转载请注明出处:[http://dsqiu.iteye.com](http://dsqiu.iteye.com)** 初学者用外语沟通。他们掌握单词,就可以组合起来表达他们的观点。随着初学者向专家转变,它们开始使用合适的成语和习语。语言变得更不像是外语,与人说话的时候就更高效、更清楚的。编程语言也没有什么不同的。你选择的技术和维护者,扩展者,或者是使用你的软件的开发者交流设计。C# 的类型总是存在 .NET 环境中。这个环境对所有类型做了一些假设。你违反了这些假设,你就增加你的函数不正确的可能性。 这章的原则不是软件设计——这卷都有关软件设计的刚要。而是,这些原则突出不同 C# 语言的特征如何更好的表达你设计的意图。C# 语言设计者增加语言特征使得表达现代设计习惯更加清晰。这些特征和其他语言的区别是很微妙的,而且你经常有很多选择。首先有多个选择就最好不过了,当你发现了后面介绍的区别你就应该改进你的程序。确保理解这些原则,并应用于那些可以以改进的系统。 一些语法引入了新的词汇描述你每天使用的习语。属性,索引器,事件和委托就是例子,并且类和接口是不同的:类定义类型,接口声明行为。基类声明类型并定义相关类型的公有行为。其他一些设计习惯随着垃圾回收器而改变。并且其他的习惯也随着引用类型变量而改变。 这章的建议会帮助你为你的设计选择最自然的表达。这会使得你创建的软件易于维护,易于扩展,并且易于使用。 小结: 第三章结合实际问题对软件设计给了很多建议,总之,更懂 C# ,你的软件就会更易于维护,更易于扩展,更易于使用,一句哈:no zuo no die ! 附上第三章目录: + [原则22:选择定义并实现接口,而不是基类](/blog/2083404) + [原则23:理解接口方法和虚函数的区别](/blog/2083428) + [原则24:使用委托来表达回调](/blog/2083564) + [原则25:实现通知的事件模式](/blog/2085830) + [原则26:避免返回类的内部对象的引用](/blog/2086266) + [原则27:总是使你的类型可序列化](/blog/2086349) + [原则28:创建大粒度的网络服务 APIs](/blog/2086414) + [原则29:让接口支持协变和逆变](/blog/2086977) 欢迎各种不爽,各种喷,写这个纯属个人爱好,秉持”分享“之德! 有关本书的其他章节翻译请[点击查看](/category/297763),转载请注明出处,尊重原创! 如果您对D.S.Qiu有任何建议或意见可以在文章后面评论,或者发邮件(gd.s.qiu@gmail.com)交流,您的鼓励和支持是我前进的动力,希望能有更多更好的分享。 转载请在**文首**注明出处:[http://dsqiu.iteye.com/blog/2086981](/blog/2086981) 更多精彩请关注D.S.Qiu的博客和微博(ID:静水逐风)