c# - 如何/何时在 OOP 中编写可重用的方法

标签 c# oop code-reuse

我经常发现自己在一个方法中多次重复两三行代码,然后考虑是否应该将其放在一个单独的方法中以避免代码重复。但是当我将这些行从方法中移出时,我发现刚刚创建的方法不可重用,只使用过一次或需要重载才能对另一种方法有用。

我的问题是我们应该寻找什么样的模式来指示我们应该创建一个新方法。感谢您的回复。

最佳答案

不要在一个方法/类中放置太多功能。尝试关注 single responsibility principle .熟悉这种方法需要一些时间。但是一旦你达到那个水平,你就会发现它是自己完成的。在编码之前,试着问问自己,你的概念包括哪些功能单元。

例如,你想开发一个应用程序,可以索引 pdf 文件的内容。这只是虚构的,但乍一看,我至少可以确定三个组成部分:

  1. PdfParser - 这为您提供 pdf 的内容
  2. 索引器 - 从解析器获取输入并对有意义的单词进行计数
  3. 存储库 - 用于持久性;这可以变得通用;所以就说repository.Get<IndexData>(filename)什么的

您还应该尝试针对接口(interface)进行编码。特别是当涉及某种 UI 时。例如,您正在使用 WinForms 开发聊天客户端。如果你关注MVC/MVVM -pattern,您可以轻松地(即,比针对 Form 对象编码更容易)将您的原始逻辑与客户端的 WPF 版本一起使用。

关于c# - 如何/何时在 OOP 中编写可重用的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8611902/

相关文章:

c# - 了解流阅读器和内部缓冲区?

c# - 访问流缓冲区 HttpWebRequest

php - 帮助我了解如何在 PHP 中使用 $this

perl - 从父类(super class)调用已知的子类函数?

php - 代码 Resuable HTML UI 元素 PHP

c# - Bing map 旋转

c# - EF6 codefirst 中唯一的多列

c# - liskov替换原则和异常处理

python - 跨项目重用 SQLAlchemy 模型

javascript - 如何添加 Javascript 中所有测试使用的全局变量?