使用类或函数
本文关键字:函数 | 更新日期: 2023-09-27 18:30:43
很抱歉提出菜鸟问题,但我总是很难区分创建函数或类的情况。 对于我在工作中编写的一些较小的程序,我编写了一大堆函数来执行特定任务。 所有程序都按预期工作。但是,当我让我的一些更资深的开发人员看一下给我他们的批评时,他们完全重写了我的许多函数。 这些是我的同事,所以我不想通过问他们为什么这样做来显得完全无能(我刚刚开始这份工作作为初级开发人员)。 你们怎么看?
这是一个太宽泛的问题,你真的必须理解面向对象编程的概念以及何时应该使用它。
注意:下面你会发现我的个人观点(其中一些是从好书的作者和经验丰富的程序员那里借来的),当然,下面突出显示的东西并不能反映面向对象思维和设计的全部力量。这些将通过经验和反馈获得。
0. 类的用例
有许多应用程序,说明在何处对 C# 代码使用内部类。
数据传输对象 (DTO)
一个应用程序(实际上很多)并且在软件中多次使用,是当您将数据从数据库传输到应用程序进行处理时。
有什么比编写一个内部类来存储数据,实现有用且可重用的方法更好的了,这些方法可以在以后的应用程序逻辑中使用(例如isAdministrator)等等。
1. 面向对象的设计模式
我建议您阅读一本关于面向对象设计模式的书。
像这样的书籍描述了一些可以使用模式通过类实现的问题场景。一旦你阅读了这些模式和可能的情况,你就可以得到这本书,找到模式并解决你的问题。
我的一个同事,陈述一些非常有用的东西。当你遇到问题时,你应该问问自己:
"这个问题是否再次使用设计模式解决了?"
如果答案是肯定的,那么你回到你的参考书中找到你的设计模式,这将解决你的问题,而无需重新发明轮子。这种方法将教您如何以及何时应该使用单独的类;但也将帮助您在您和您的同事之间保持一种沟通语言,也就是说,如果您正在与同事谈论您的代码,您将能够陈述设计模式,并且您将立即被理解(鉴于此,您的同事知道特定的设计模式)。
2. 不要害怕创建多个内部类
另外需要注意的是,不要害怕创建多个内部类。尽可能多地实现,不要试图实现一个内部类并混合职责。你的类应该用于特定目的,并且不应该做多件事(即职责,如果你正在编写一个关于将数据从数据库传输到应用程序逻辑的类,理想情况下不应该做其他事情,比如向数据库添加数据)。
考虑了解有关多态性、继承、封装和抽象的更多信息。
面向对象编程的这四个基本原则还可以帮助您学习如何构建面向对象的代码。
3. 一般注意事项
作为一名初级开发人员,不仅作为初级开发人员,而且作为一般开发人员,您应该始终愿意通过寻求反馈来向更有经验的人学习。学习和改进代码的法则并不丢人。
另一个强大的学习来源是书籍,考虑为您感兴趣的领域购买一些。(例如面向对象编程,设计模式等)。
正如其他人在评论中指出的那样,这确实太宽泛了,有点固执己见,但大局观,在以下情况下使用类:
- 随时间推移维护状态,并将函数应用于此状态。
- 你有一组函数,它们有一个共同的目标,或者处理一个共同的用法、数据类型或其他"明显的共同想法"。当这些功能可以在其他地方重用时,这一点尤其重要。
但实际上,要获得更深入的理解,请买一本书:-)
顺便说一句,在 C# 中,您不能将任何功能放在类之外,因此问题实际上应该是"如何将我的单体类划分为较小的类"