Service 类到底有啥意义?Java技术栈共 1434字,需浏览 3分钟 · 2021-01-14 Java技术栈www.javastack.cn关注阅读更多优质文章Service 类到底是什么含义?我相信如果碰到一个叫 SomethingService 的类,没法马上明白它到底起什么作用。说实话,我们都很困惑。经过多年的专业开发,在大量的代码中游走,有一点是显而易见的,开发人员不太擅长给事物命名。作为一个菜鸟开发者,我知道当看到 SomeService 或 WhateverManager 类,或者是 WhatevsManagerService 时,你都会不知所措或疑惑不解。Class 命名就像工作头衔BD?实际是一个销售人员。Social Media 专家?可能是 3 周学会如何在 Instagram 上发布猫咪照片。软件工程师?实际上是堆砌代码的码农。工作头衔和工作角色有时候不挂钩,我们更喜欢把头衔弄得比角色更花哨。Class 命名也是如此。另外,关注公众号Java技术栈,在后台回复:手册,可以获取一份最新的阿里 Java 开发手册,非常齐全。服务(service)类任何以 Service 为后缀的代码基本上都是一个逻辑垃圾箱。任何添加到程序中的新功能,最后总是以某种服务类的方式来实现。一个服务类需要大量的构造函数参数,使得测试起来非常麻烦。要测试一个新方法 GetUserCount()?可能需要 mock 7 个完全不相关的类来实例化这个服务类。如果 GetUserCount() 只依赖于服务类中的一个构造函数参数,那么最好把它移到自己的类中。这样一来,你就有一个非常简单的类,只有一个构造函数参数。当然,单独的 GetUserCount 类看起来不是那么酷,但至少你知道它到底是做什么的。测试变得轻而易举。Manager 类你很可能见过类似 UserManager 这样的类,它管理用户。像服务类一样,它们也是逻辑垃圾箱。但是有一点区别。如果说服务类是一个普通的垃圾箱,那么 Manager 类就像一个纸板垃圾箱,它更特殊一点。你会面临和服务类一样的处理单元测试的问题。在做最微小的操作之前,你需要 mock 一大堆东西。Util 类和 Helper 类"我们不知道把这些代码塞在哪里好,所以就弄了一个 Util 类"。这些都是烦人的东西。关于这一点,没有什么好说的了。怎么破?很简单。给出与职责相匹配的合适名称。把一个类命名为GetUser,并且只有一个方法,这并不丢人。实现也简单,每个人都知道它是做什么的。容易进行单元测试。停止代码膨胀,简化这些类。比如,构建只有一个方法的类。另外,关注公众号Java技术栈,在后台回复:面试,可以获取我整理的 Java 系列面试题和答案,非常齐全。作者:Nicklas Millard英文原文:https://medium.com/datadriveninvestor/the-true-meaning-of-service-and-manager-class-names-d09a08731fd9翻译:高可用架构译文:https://m.sohu.com/a/440722848_268033/关注Java技术栈看更多干货戳原文,获取精选面试题! 浏览 59点赞 评论 收藏 分享 手机扫一扫分享举报评论图片表情视频评价全部评论推荐Service mesh有啥意义?春哥叨叨0微前端到底有啥用?极客挖掘机0数据分析领域做的【日周月年报表】到底有啥意义?数据D江湖0数字孪生+交通,到底有啥用?物联网智库0Class.forName 和 ClassLoader 到底有啥区别?泥瓦匠BYSocket0容器和虚拟机到底有啥区别?Docker这几年的迅猛发展让容器重新流行起来,不过但很多资料里介绍Docker时都说是 "新瓶装旧酒"。除了容器外虚拟机也是我们或多或少会接触到的虚拟化技术。虚拟机和容器都用于创建隔离的虚拟环境,但是这两种虚拟化...Go语言精选0Java 8 中 HashMap 到底有啥不同?Java技术迷0Spring 和 SpringBoot 之间到底有啥区别?程序员的时光0Java 8 中 HashMap 到底有啥不同?JAVA葵花宝典0Java 8 中 HashMap 到底有啥不同?互联网架构师0点赞 评论 收藏 分享 手机扫一扫分享举报