如何处理公用的代码:类还是辅助函数?

大佬们,我有一个疑问,如果有一些代码是公用的,那么我应该是创建一个公共的类去写这些代码,还是创建一个辅助函数去做这件事呢,如果按照面向对象的编程,又感觉写一个公共的类比较合适。比如我现在有两个方法是公用的,一个是把无限极结构转为树状结构,一个是把图片路径根据新旧系统分别拼接上新旧系统的域名。这两个方法都是在系统公用的,请问是写成辅助函数,还是写一个Comment类,类里面定义这两个方法去做这件事呢。

已经试过

阅读 749
avatarAI BotBETA

你的问题是一个很好的问题,这取决于你的编程风格和你的项目需求。在这两种情况下,你都可以选择创建公共类或辅助函数。

创建公共类

如果你选择创建一个公共类,例如“Utils”或“Comment”,并在这两个方法中定义这两个方法,这种方法符合面向对象编程的思想。所有的相关逻辑都被组织在同一个类中,这样更加清晰和易于管理。当你需要使用这些方法时,只需要实例化这个类并调用相应的方法就可以了。

例如:

public class Utils {
    public static TreeNode convertInfiniteStructureToTree(List<Comment> comments) {
        // 实现代码...
    }
    
    public static String buildImagePath(String oldPath, String newDomain) {
        // 实现代码...
    }
}

然后你可以这样使用:

List<Comment> comments = ...;
TreeNode tree = Utils.convertInfiniteStructureToTree(comments);

String oldPath = "...";
String newDomain = "newdomain.com";
String newPath = Utils.buildImagePath(oldPath, newDomain);

创建辅助函数

如果你选择创建辅助函数,那么这些函数可以直接定义在你的主类或者你需要使用它们的任何类中。这样做的好处是,它们更接近你的主要逻辑,更容易被调用。辅助函数不应具有状态,它们只是执行特定任务的工具。

例如:

public class MainClass {
    // 其他代码...
    
    public TreeNode convertInfiniteStructureToTree(List<Comment> comments) {
        // 实现代码...
    }
    
    public String buildImagePath(String oldPath, String newDomain) {
        // 实现代码...
    }
    
    // 其他代码...
}

然后你可以这样使用:

List<Comment> comments = ...;
TreeNode tree = this.convertInfiniteStructureToTree(comments);

String oldPath = "...";
String newDomain = "newdomain.com";
String newPath = this.buildImagePath(oldPath, newDomain);

选择

在选择创建公共类还是辅助函数时,可以考虑以下因素:你的代码库的大小、这些方法的使用频率、你的团队对面向对象编程的偏好程度等。如果你的项目中有很多地方需要使用这些方法,那么创建公共类可能更合适,因为这样可以使代码更易于管理和重用。如果你只是在一个类中使用这些方法,那么辅助函数可能更合适,因为它们更接近你的主要逻辑。

1 个回答

个人观点:都可以
面向对象也不一定必须有类,只有函数也不定不面向对象
比如像 java,必须先有类/对象才能有方法,所以必须有类,反之一些其他语言就不需要
只要是按照一定的规则去组织这些公用代码就可以

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题