首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

《重构》第十一章 - 读后感(处理概括关系)

1.字段上 两个子类有相同的字段,那么就该字段移到类中! 2.函数上 有些函数在各个子类中产生的完全相同的结果,将该函数移动到超类!避免行为重复是很重要的,尽管重复自身只会成为错误的源泉。...3.构造函数本体上 如果在各个子类中拥有一些构造函数,他们的本体几乎完全一致,在超类中新建一个构造函数,并在子类构造函数中调用它。...4.函数下移 超类中某个函数只与部分子类有关,那么就应该这个函数移动到相关的子类中去。这块也从侧面表示了我们在使用继承时,应该尽量一些共性的东西放到类定义,而将特性放到子类中去。...5.字段下移 超类中的某个字段只被部分子类使用到,这个字段移动到需要它的子类中去。还是我们上边说的,类中放共性的,子类放特性的。...意思是我们继承一个类,然后这个类根本没啥用,主要是其数据我们使用不到,那么就新建一个属性,类的对象设置进去。然后去掉继承关系。

64930
您找到你想要的搜索结果了吗?
是的
没有找到

微服务项目模块依赖错误问题的完美解决方案

错误的 statistics-api 模块的放入到正确依赖的子模块项目his-statistics 下 操作方式: 点击statistics-api 子模块后, 利用鼠标将其拖动到 his-statistics...在正确的项目/子模块项目的pom中将第1步剪切的内容放入并更新pom文件 在子模块项目的pom文件中把第1步剪切的statistics-api 放到正确依赖的项目..., 引用错误的项目/子模块项目改为对的并更新pom文件即可 ?...---- 总结 : 总体步骤可以总结为: 剪切在项目错误引用的子模块并更新pom文件 将该子模块移动到正确的项目/子模块项目中(位置移动) 在正确的项目/子模块项目的pom中将第1步剪切的放入并更新...pom文件 修改该子模块的pom, 引用错误的项目/子模块项目改为对的并更新pom文件即可

1.5K30

Maven的pom文件那些事

插件配置 命令行配置:$mvn install -Dt 插件相关参数 //适用于当每次运行时,这个插件的配置都会变的情况 pom中全局配置: ...pom文件,没有其他的实现代码 一般来说模块处的目录名应与其artifactId一致 聚合模块与其他模块的目录结构并非一定要父子关系 继承 pom <modelVersion...也可以继承与pom文件 标签 作用:当子类不需要pom中的某些依赖的时,就可以使用。...中已经配置过了 若想获取pom中所有的dependencyManagement中的构件配置,则在子pom中如下配置 <...插件管理 pom中的插件不想在子类中默认使用 跟依赖管理一样,被包裹的插件配置不会被子pom主动获取,只有当子pom中声明了该插件的groupId和artifactId后,才会被继承 一个pom文件既可以是聚合也可以是

1.4K10

Maven 核心原理解析(3)

executions与configuration配置, 因为完整的声明已经包含在POM中....优势: 当依赖、插件的版本、配置等信息在POM中声明之后, 子模块在使用时就无须声明这些信息, 也就不会出现多个子模块使用的依赖版本不一致的情况, 也就降低了依赖冲突的几率....另外如果子模块不显式声明依赖与插件的使用, 即使已经在POM的dependencyManagement、pluginManagement中配置了, 也不会产生实际的效果....但需要遵循以下三条规则: 在所有子POM中指定它们的POM; POM的packaging值设为pom; 在POM中指定子模块/子POM的目录....注: parent元素内还包含一个relativePath元素, 用于指定POM的相对路径, 默认../pom.xml.

1.4K40

Maven

下载 Maven 安装前请确认 JDK 已安装完毕 官网下载地址:Maven – Download Apache Maven 下载 apache-maven-3.8.5-bin.zip,解压后移动到...,而版本全由项目管理,我们可以dependencies全部放入dependencyManagement节点,这样项目就完全作为依赖统一管理。...,因为现在项目所有的依赖进行集中管理,子项目需要什么拿什么即可,同时子项目无需指定版本,所有的版本全部由项目决定,子项目只需要使用即可: <dependency...多模块下项目存在一个packing打包类型标签,所有的级项目的packing都为pom,packing默认是jar类型,如果不作配置,maven会将该项目打成jar包。...作为级项目,还有一个重要的属性,那就是modules,通过modules标签项目的所有子项目引用进来,在build级项目时,会根据子模块的相互依赖关系整理一个build顺序,然后依次build。

64430

Java EE7和Maven工程入门(1)

一个pom,包含JPA(数据库实体)类。 ? 正如你看到的那样,每一个模块都有自己的pom文件,一个pom文件。很多人不在他们的结构中添加pom文件,因为他们的工程很小,所以不需要。...当更多的模块添加进来时,没有pom就变得一团糟。所以请记住,拥有并配置pom文件是一件非常好的事情。...在它里面,你会定义你所有依赖的jar包的版本,配置maven的插件,所有的子pom文件都会继承pom的配置。 我的Maven工程的结构:pom文件 正如前面说过的那样,我们要白手起家。...在我们的pom中,跟dependencyManagemt相似的另一个重要的部分是pluginManagement。在这个部分定义所有maven插件的版本和通用的配置。...资源 Maven3 Java EE 7指南 Maven工程的结构 pom 什么是依赖管理 什么是插件管理

61010

Java EE7和Maven工程入门(3)

我们已经有了一个pom并且已经为我们的war模块定义好了pom。在原来的设置中,我们已经定义了应用程序将要包含一个以ejb jar包的形式的service jar包。...定义service(ejb)模块 在pom文件夹下,我们新建一个子目录,就像我们处理war模块一样。在这个文件夹里面我们创建一个包含以下内容的pom.xml文件。...记得我们已经在pom的依赖管理部分(dependency management)定义过了javaee-api jar包的版本,在插件管理部分(plugin management)还需要一个maven插件来专门负责打包我们...可以回到pom中,查找以上两点。由于这些元素都定义在了pom里,所以我们的ejb service pom看起来就小多了。按照惯例,Maven负责大多数东西。...maven的ejb插件踢开,因为我们已经定义了需要此模块的包是“ejb”。 我们的工程结构看起来是这个样子的: ?

42110

maven install,build,package等基操及避坑指南

生命周期的阶段与插件目标相互绑定,就可以在特定的阶段完成具体的构建任务。...Maven 的聚合功能可以通过一个模块所有的要构建模块整合起来,模块的打包类型声明为 POM,通过 各模块集中到 POM 中。如清单 7,其中 中间的内容为子模块工程名的相对路径。...各子模块聚合到模块中后,我们就可以对模块进行一次构建命令来完成全部模块的构建。 继承 在面向对象的编程中我们学会了继承的概念,继承是可重用行即消除重复编码的行为。...与聚合的实现类似,我们通过构建模块子模块共用的依赖,插件等进行统一声明,在聚合和继承同时使用时,我们可以用同一个模块来完成这两个功能。.../com.dugeng.parent/pom.xml 由于模块只是用来声明一些可共用的配置和插件信息,所以它也像聚合模块一样只需要包括一个 POM

14K42

Maven 核心原理解析(2)

于是就有了Maven的模块聚合 -> feedcenter-push作为聚合模块将其他模块聚集到一起构建: 聚合POM 聚合模块POM仅仅是帮助聚合其他模块构建的工具, 本身并无实质内容: <project...在Maven中同样也可以创建POM的父子结构, 通过在POM中声明一些配置供子POM继承来实现复用与消除重复: 1....POM 与聚合类似, POM的打包方式也是pom, 因此可以继续复用聚合模块的POM(这也是在开发中常用的方式): <project xmlns="http://maven.apache.org/<em>POM</em>...继承<em>父</em><em>POM</em>的配置的同时, 又能够保证子模块的灵活性: 在<em>父</em>POMdependencyManagement元素配置的依赖声明不会实际引入子模块中, 但能够约束子模块dependencies下的依赖的使用...(子模块只需配置groupId与artifactId, 见下). pluginManagement: 与dependencyManagement类似, 配置的<em>插件</em>不会造成实际<em>插件</em>的调用行为, 只有当子<em>POM</em>

1.1K70

Maven聚合模块与继承和Maven的生命周期

但是我们可以创建一个单独的pom工程去实现这个聚合管理: ? 创建完成,这个工程里就只有一个src的文件夹和pom文件: ? 然后编辑pom配置文件,进行模块映射: ?...Maven继承: Maven的继承就是节点配置的依赖包继承下来,例如节点配置了JUnit依赖包,这样的话只要继承它的工程都会自动下载此依赖包,就不需要自己再进行配置了。...这个节点是一个pom工程,所以我们可以直接用管理工程做为节点。   示例: ? ?  ...Maven的生命周期是抽象的,实际需要插件来完成任务,这一过程是通过插件的目标(goal)绑定到生命周期的具体阶段(phase)来完成的。...如:maven-compiler-plugin插件的compile目标绑定到default生命周期的compile阶段,完成项目的源代码编译: ?

55610

IdeaVim 基本操作

IdeaVim 基本操作 安装插件 ideaVim 剪贴板与系统剪贴板同步 Caps Lock 键映射为 Esc 键 光标的移动 文本的插入 剪切和复制 撤销与重做 查找与替换 宏的使用 排版与辅助...+或Enter 把光标移至下一行第一个非空白字符 – 把光标移至上一行第一个非空白字符 w 前一个单词,光标停在下一个单词开头 e 前一个单词,光标停在下一个单词末尾 b 后移一个单词,光标停在上一个单词开头...ge 后移一个单词,光标停在上一个单词末尾 { 前1段 } 后移1段 上面的操作都可以配合n使用,比如在正常模式下输入3h,则光标向左移动3个字符 快捷键 含义 0 移动到行首 $ 移动到行尾...翻屏 快捷键 含义 ctrl+f 下翻一屏 ctrl+b 上翻一屏 ctrl+d 下翻半屏 ctrl+u 上翻半屏 ctrl+e 向下滚动一行 ctrl+y 向上滚动一行 n% 到文件n%的位置 zz 当前行移动到屏幕中央...zt 当前行移动到屏幕顶端 zb 当前行移动到屏幕底端 文本的插入 基本插入 快捷键 含义 i 在光标前插入 a 在光标后插入 I 在当前行第一个非空字符前插入 A 在当前行最后插入 gI 在当前行第一列插入

2.2K30

想自学Maven?推荐Maven极简高速入门及常规使用

每个pom.xml都有一个pom.xml,pom.xml中包含了一些可以被继承的默认设置,例如当查找依赖时,如果本地仓库中没有,默认会从中央仓库中查找依赖,但是这个中央仓库默认是不需要配置的,是因为在...--项目的pom.xml中定义的元素值被本项目继承下来,也就是说如果本项目pom.xml中某元素没定义,那么默认会自动使用项目定义的值--><!...实际的开发中,通常将项目的公共依赖定义到项目的pom.xml中,或者定义到公共项目的pom.xml中。...mvn clean deploy:依次执行移除所有上一次构建生成的文件、代码编译、单元测试、打包、打好的包安装到本地仓库、打好的包发布到远程仓库。

1.3K10

MAVEN简介之——pom.xml

下面的命令可以清除本地构建并重新打包发布到远程仓库: mvn clean deploy 每一个构建阶段都是由插件目标组成的,一个插件目标代表着一个特殊的工作。...它可以被绑定到多个构建阶段中,如果插件目标没有绑定到构建阶段中, 可以直接使用命令去执行。它们执行的顺序取决于命令的顺序。...的位置在module的上一级目录,如果pom不在上一级目录,该如何配置呢?...项目集合与项目的继承非常像,不同点在于它在pom中指定模块,为了配置项目集合,你需要做两点: pom的packaging改为pom。 在pom中指定它的模块。...这些依赖传播到依赖的工程。 provided:非常像compile,标志着你希望JDK或者容器在运行时提供依赖。

85720
领券