![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
程序设计思想
文章平均质量分 86
Phil Arist
迎着风 一直跑
展开
-
.NET基础知识快速通关10
1反射的基本原理反射是一种动态分析程序集、模块、类型及字段等目标对象的机制,它的实现依托于元数据。元数据,就是描述数据的数据。在CLR中,元数据就是对一个模块定义或引用的所有东西的描述系统。2.NET中如何实现反射在.NET中,为我们提供了丰富的可以用来实现反射的类型,这些类型大多数都定义在System.Reflection命名空间之下,例如Assembly、Module等。利用这些类型,我们就可以方便地动态加载程序集、模块、类型、方法和字段等元素。下面我们来看一个使用示例,首先是创原创 2022-05-31 08:58:44 · 161 阅读 · 0 评论 -
.NET基础知识快速通关9
1事件如何使用在Microsoft的产品文档上这样来定义的事件:事件是一种使对象或类能够提供通知的成员。客户端可以通过提供事件处理程序为相应的事件添加可执行代码。设计和使用事件的全过程大概包括以下几个步骤:下面我们来按照规范的步骤来展示一个通过控制台输出事件的使用示例:① 定义一个控制台事件ConsoleEvent的参数类型ConsoleEventArgs/// <summary>/// 自定义一个事件参数类型/// </summary>public cl原创 2022-05-30 11:49:15 · 178 阅读 · 0 评论 -
.NET基础知识快速通关8
1委托的基本原理委托这个概念对C++程序员来说并不陌生,因为它和C++中的函数指针非常类似,很多码农也喜欢称委托为安全的函数指针。无论这一说法是否正确,委托的的确确实现了和函数指针类似的功能,那就是提供了程序回调指定方法的机制。在委托内部,包含了一个指向某个方法的指针(这一点上委托实现机制和C++的函数指针一致),为何称其为安全的呢?因为委托和其他.NET成员一样是一种类型,任何委托对象都是继承自System.Delegate的某个派生类的一个对象,下图展示了在.NET中委托的类结构:从上图原创 2022-05-28 20:24:48 · 267 阅读 · 0 评论 -
.NET基础知识快速通关3
1.NET中的类可以多继承吗?在C#中申明一个类型时,只支持单继承(即继承一个父类),但支持实现多个接口(Java也是如此)。像C++可能会支持同时继承自多个父类,但.NET的设计小组认为这样的机制会带来一些弊端,并且没有必要。首先,看看多继承有啥好处?多继承的好处是更加贴近地设计类型。例如,当为一个图形编辑器设计带文本框的矩形类型时,最方便的方法可能是这个类型既继承自文本框类型,又继承自矩形类型,这样它就天生地具有输入文本和绘画矩形的功能。But,自从C++使用多继承依赖,就一直存在一些弊原创 2022-05-16 20:45:54 · 237 阅读 · 0 评论 -
.NET基础知识快速通关2
1.NET中的所有类型的基类是什么在.NET中所有的内建类型都继承自System.Object类型。在C#中,不需要显示地定义类型继承自System.Object,编译器将自动地自动地为类型添加上这个继承申明,以下两行代码的作用完全一致:public class A { }public class A : System.Object { }2值类型和引用类型的区别是什么在.NET中的类型分为值类型和引用类型,它们各有特点,其共同点是都继承自System.Object,但最明显原创 2022-05-12 14:19:58 · 209 阅读 · 0 评论 -
C# 实例解释面向对象编程中的单一职责原则
在面向对象编程中,SOLID是五个设计原则的首字母缩写,旨在使软件设计更易于理解、灵活和可维护。这些原则是由美国软件工程师和讲师罗伯特·C·马丁(Robert Cecil Martin)提出的许多原则的子集,在他2000年的论文《设计原则与设计模式》中首次提出。SOLID 原则包含: S:单一功能原则(single-responsibility principle) O:开闭原则(open-closed principle) L:里氏替换原则(Liskov substitut.原创 2022-03-13 12:39:59 · 166 阅读 · 0 评论 -
C# 实例解释面向对象编程中的里氏替换原则
在面向对象编程中,SOLID是五个设计原则的首字母缩写,旨在使软件设计更易于理解、灵活和可维护。这些原则是由美国软件工程师和讲师罗伯特·C·马丁(Robert Cecil Martin)提出的许多原则的子集,在他2000年的论文《设计原则与设计模式》中首次提出。SOLID 原则包含: S:单一功能原则(single-responsibility principle) O:开闭原则(open-closed principle) L:里氏替换原则(Liskov su.原创 2022-03-13 12:37:36 · 367 阅读 · 0 评论 -
如何以计算机的方式去思考
从上大学第一天开始接触编程,老师便给我们讲过各式各样的算法。从各种查找、排序,到递归、贪心等算法,大一的时候一直在和这些算法搏斗。直到工作后,为了应付面试,仍不得不回过头去啃算法书或者去刷一些算法习题,才能够拾回一些上学时的记忆。为什么算法就这么难以记住呢?或者说,为何计算机的算法不能更直观一些呢?因为计算机的算法就是反人性的,从本质上来说,这是计算机的思维方式和人脑思维方式的区别而造成的。人脑思维的机制至今没有一个确定的理论,暂时认为是化学物质和电信号的作用。虽然没有科学的解释,但是我们每个人都有原创 2022-02-23 10:21:40 · 103 阅读 · 0 评论 -
从实际业务出发,浅显的聊聊如何理解领域驱动设计
前言什么是领域,我习惯描述的是制药领域、环境领域、建筑领域、金融领域等,而在领域内,各种业务规则、业务知识盛行,如何有效的把控规则的变化,应对复杂知识,有一个很关键的四字词语,分而治之。分治法在很多场景下体现了其强大的作用力。领域本身很大,那就拆分,得到更小的领域,也即子域,如同递归调用一般,将一个复杂问题拆分单独求解,而最终将解汇总得到复杂问题解。怎么拆,拆成怎么样合适,依据什么拆,这些在领域驱动设计中有了一套答案,虽然领域驱动设计不是银弹,但可以说的上是一套极好的系统方法论或称为架构设计的方法论原创 2022-01-28 10:51:03 · 283 阅读 · 0 评论 -
系统分析与设计方法---需求分析与软件设计
需求分析是软件生命周期中相当重要的一个阶段。根据 Standish Group 对 23000 个项目进行的研究结果表明,28%的项目彻底失败,46%的项目超出经费预算或者超出工期,只有约 26%的项目获得成功。需求分析工作在整个软件开发生命周期中有着十分重要的意义。而在这些高达 74%的不成功项目中,有约 60%的失败是源于需求问题,也就是差不多有一半的项目都遇到了这个问题,这一可怕的现象引起人们对需求分析的高度重视。需求分析阶段的主要任务是通过开发人员与用户之间的广泛交流,不断澄清一些模糊的概念,最终形原创 2021-12-08 10:01:18 · 2362 阅读 · 0 评论 -
设计模式——状态
状态模式介绍状态模式是一种行为设计模式,让你能在一个对象的内部状态变化时改变其行为,使其看上去就像改变了自身所属的类一样。根据状态不同,行为也不同状态模式描述的是一个行为下的多种状态变更,比如我们最常见的一个网站的页面,在你登录与不登录时,用户看到的页面是不同的,而这种登录与不登录就是我们通过改变状态而让整个行为发生了变化。状态模式建议为对象的所有可能状态新建一个类,然后将所有状态的对应行为抽取到这些类中。原始对象被称为上下文,它并不会自行实现所有行为,而是会保存一个指向表示当.原创 2021-09-06 10:10:29 · 128 阅读 · 0 评论 -
设计模式——模板方法
模板方法介绍模板方法模式是一种行为设计模式,它在超类中定义一个算法的框架,允许子类在不修改结构的情况下重写算法的特定步骤。模板模板方法模式建议将算法分解为一系列步骤,然后将这些步骤改为方法,最后在“模板方法”中依次调用这些方法。步骤可以是抽象的,也可以有一些默认的实现。为了能够使用算法,客户端需要自行提供子类并实现所有的抽象步骤(有时候还需要重写步骤)。模板方法将算法分解为步骤,并允许子类重写这些步骤,而非重写实际的模板方法。分解步骤1、抽取步骤必须由各个子类来实现;原创 2021-09-06 10:04:10 · 235 阅读 · 0 评论 -
设计模式之访问者
访问者模式介绍访问者模式能将算法与其所作用的对象隔离开来。访问者模式建议将新行为放入要给名为访问者的独立类中,而不是试图将其整合到已有类中。它允许你在不修改已有代码的情况下向已有类层次结构中增加新的行为。需要执行操作的原始对象将作为参数被传递给访问者中的方法,让方法能访问对象所包含的一切必要数据。简单理解下什么是访问者,这里使用保险代理人拜访不同层次的客户时为例子。他会根据不同的客户,推荐不同的保单。 普通农民工,推荐医疗保险。 普通打工人,推荐医疗保险和财产保.原创 2021-08-23 09:20:27 · 118 阅读 · 0 评论 -
面向对象程序设计的六基本原则
单一职责原则(SRP):最难做到的一个类只负责一个职责使用单一职责原则的好处:1.可以降低类的复杂度,一个类只负责一项职责,其逻辑肯定要比负责多项职责简单的多;2.提高类的可读性,提高系统的可维护性;3.变更引起的风险降低,变更是必然的,如果单一职责原则遵守的好,当修改一个功能时,可以显著降低对其他功能的影响。需要说明的一点是单一职责原则不只是面向对象编程思想所特有的,只要是模块化的程序设计,都适用单一职责原则。2.依赖倒置原则(DIP):原始定义:1高层模块不该依...原创 2021-06-11 16:00:37 · 346 阅读 · 4 评论