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

Abd*_*eed 9 c# oop code-reuse

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

我的问题是我们应该寻找什么样的模式,表明我们应该创建一个新的方法.感谢您的回复.

Mat*_*ias 5

不要在一个方法/类中放置太多功能。尽量遵循单一责任原则。熟悉这种方法需要一些时间。但一旦你达到那个水平,你就会发现这一切都是自己完成的。在编码之前,试着问自己,你的概念包括哪些功能单元。

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

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

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


Tom*_*ski 1

作为一般规则,始终将这些情况视为功能实体。如果一段代码在功能上执行一项任务(复杂的字符串转换、解析等),那么您应该编写可重用的方法。如果该函数特定于某种类型,则编写一个扩展方法