您现在的位置是:亿华云 > 应用开发
C#一步一步教你如何去写面向对象代码
亿华云2025-10-09 03:41:12【应用开发】6人已围观
简介本文以“家庭”为例子,演示如何使用面向对象思维去编写代码。这是一篇文字较多的文章,建议您仔细阅读,因为它将完整展示构建一个面向对象代码的过程,当然这个思想过程是我个人的过程,每个人有自己思考的方式方法
本文以“家庭”为例子,步步教演示如何使用面向对象思维去编写代码。何去
这是写面向对象代一篇文字较多的文章,建议您仔细阅读,步步教因为它将完整展示构建一个面向对象代码的何去过程,当然这个思想过程是写面向对象代我个人的过程,每个人有自己思考的步步教方式方法,我的何去仅供参考。
一、写面向对象代编写面向对象,步步教首先要构思
构思一般随意,何去你可以在自己脑海中构思,写面向对象代也可以借助专业的步步教UML来构思,又或者借助纸笔构思,何去总之,写面向对象代一切随意,只要你喜欢。
那么下面这张图,是我在纸上画的构思:


二、形成你的思路
通过构思,你可以慢慢的理清、形成自己的亿华云代码思路。
回到“家庭”这个例子,我当时是这么思考的:
家庭,就要有家庭成员,所以,我可能会有一个IMember的接口。
然后我想到家庭成员之间存在一定的关系,比如父与子、母与子等关系,于是有了IRelation接口。
接着我就想到了家庭属性,家庭应该是独特的,自己的定义,所以就有了Family,有了Family,我就想到了应该抽象成IFamily,而IFamily很可能会有家庭名称、人员列表等属性或者方法定义。
再然后我回顾之前的思路,想到关系会有多种类型,它可能会是个枚举,所以就有RelationTypes枚举对象。
那有了关系,b2b信息网可能需要一个关系管理类来管理它。所以,我就有了RelationManager类。
最后我又思考到了家庭成员,每个成员都有自己的个性。而个性是复杂,不一定是单一的,比如有些成员好动而热情,比如爸爸面冷心热等。于是我想个性应该是个具有Flags标签的枚举,允许一个成员具有多重个性。
三、检查回顾,并理解你的需求是否满足
我们在工作中,对于一个功能开发项,它首要保证的是实现业务需求,所以,我们在做了简单的建模后(构思即是建模的过程),需要结合实际,服务器托管看是否满足需要。
那么我们看“家庭”这个例子,由于我是举例子,所以它目前的简单建模可能是正确的。暂时也不需要加其它的需求了。
但现在觉得没有问题的建模,在实际编写代码后,可能会面临实际项目中,我们尚未考虑到的点,这时就需要不断迭代建模。直到你的思维准确为止。
四、关于对象的方法或者属性
我个人的习惯是简单建模出整体框架后,就开始写代码了。
可能有的人,做事较为细致,在构建阶段,就会想要事先定义好每一个对象的方法或者属性,这也是可以的。看您习惯和喜欢。
五、编码,我们先写关系代码
1.先定义成员关系接口


2.定义成员关系类型的枚举


3.定义关系创建接口


这里要稍微注意下,这与我的简单建模规划的关系思想有些不同,增加了关系创建接口。所以说,我们在实际编码过程中,针对业务的情况会有偏移,需要进行重构建模。
4.定义成员关系接口的实现类


这里要特别注意的是,我这里将实现类定义成internal,这就意味着,除了我们自己外,外部调用我们api的人,也就是外部程序员引用我们的dll的话,是无法直接new一个Relation对象的,因为我们把它定义成了内部类。这样就可以规范外部调用者的行为,指定了他如果想要实例化这个Relation类的话,必须通过其它途径来实现。
5.定义关系创建类


这个就是别人想要创建关系时,所必须通过的途径。因为他无法实例化Relation类,只能通过我的RelationBuilder对象的Create()方法来创建,这就规范了使用我们api的人的行为。
六、编码,我们编写家庭成员和个性的代码
1.家庭成员的接口定义


我们会看到家庭成员接口只定义了全名和性别2个属性,但是家庭成员是有个性的,为什么不放在一起写呢?这就是面向对象的接口隔离原则,你可以参考我的前面文章,有一篇单独讲“接口隔离原则”的。
2.家庭成员的个性枚举,注意个性是多重的,所以,我们的枚举要定义成Flags


3.然后我们定义一个家庭成员的个性接口


4.最后,我们来定义家庭成员的实现类Member.cs


注意看这个成员实现类,它实现了两个接口,分别是IMember和ICharacter。我们定义了它的构造函数,带有fullName和sex两个参数,所有public的公开属性都是只读的,这意味着别人只能访问而无法修改。开放了设置个性的方法SetCharacter()。
好了,由于篇幅很长了,所以,关于家庭的接口,我就不再继续写了。相信你通过上面两个例子,也已经学会了,如何去编写面向对象的代码思路了。
如果你能学会并运用这个思路,那么我很为你高兴。
很赞哦!(6)
相关文章
- 为啥修改dns服务器?dns服务器与域名有何联系?
- 为什么现在中文域名逐步起来了?中文域名有什么趋势?
- 用户在注册域名过程中考虑什么?有什么需要做的?
- 新手怎么在选域名上省钱呢?有什么技巧?
- 在数以亿计的网站中,我们应该抓住每一个可能带来宣传的机会,域名可以带有企业的名字,一般可以使用汉语拼音或者英语单词或者是相关缩写的形式,只要用户记住了你企业的名字,就能很容易的打出你的网站域名,同样的,记住了网站域名也能很快的记住你公司的名字。
- 域名到期续费有啥可注意的?新手必知的域名续费问题
- 注册国外域名有什么不同方式?新手要注意哪几点?
- 小白选老域名需要注意什么问题?有什么细节?
- 第三,.cc域名域名也有很多优势资源域名,从整体注册基数也可以由此推断;
- 有价值的域名都是来自哪的?新手找域名这里不可忽视
站长推荐
4、说起来容易
玩域名有什么建议?新手域名投资需要什么基础?
一般是怎么选择适合自己网站的域名?新手需要知道什么?
新手对域名建站是如何理解的?该怎么进行建站?
3、不明先知,根据相关征兆预测可能发生的事件,以便提前做好准备,赶紧注册相关域名。;不差钱域名;buchaqian抢先注册,就是这种敏感类型。预言是最敏感的状态。其次,你应该有眼力。所谓眼力,就是善于从社会上时不时出现的各种热点事件中获取与事件相关的域名资源。眼力的前提是对域名领域的熟悉和丰富的知识。
域名投资为什么做好这些准备是必要的?投资域名注意什么?
可以用自己名字做域名?为什么好多名字被当做域名抢注?
域名与商标冲突吗?新手要掌握哪些区别?