全部隐藏!

在较早的文章中 ,我写了以下几句话: 在面向对象的代码库中,该工具包应尽可能离散。 使用开发套件的次数越多,您的代码实际面向对象的次数就越少,或者您的抽象并不是最好的。

我认为有必要详细说明这一点,因为它很强,并且该文章并没有充分说明这一点。

汤姆和杰瑞–两位小印第安人,威廉·汉纳和约瑟夫·巴贝拉

我承认,这个想法很简单,尽管可能是理想主义的:在查看您的代码库时,我应该能够通过查看对象的实例化,观察它们如何构成和装饰每个实例来理解应用程序的功能和业务逻辑。其他。 就像我在另一篇文章中所说的那样,您应该将业务逻辑隐藏在清晰的视野中 。

基本上,这意味着我不需要为了了解您的程序应该在何时执行什么操作而去查看任何算法,Collection处理,任何类型的数据操作或对实用程序方法的调用。 所有这些细节都应分解为最小的部分,并隐藏在接口实现的背后。 换句话说,您的代码应尽可能具有声明性-请记住, 命名是最重要的方面之一。

不用说,这种方法需要大量的设计工作,尤其是在架构师方面:我相信架构师应该做的第一件事就是设计对象的接口 。 理想情况下,他/她应该交付一个仅包含Java接口的框架项目,并附带详细的JavaDocs来解释最终对象应如何协同工作,以及可能的一些替代实现想法。 然后,开发人员的工作就是提供实现并将所有内容放在一起,就像一个难题一样-我什至不提每个测试对象都应该完全覆盖每个对象。

缺点当然是,错误可能会花费更多的精力,可能花费在重新设计内容上。 另一方面,这样的应用程序将小得多,并且永远不会变成庞然大物。 只需简单地了解哪种方法适合哪里,您就不必问自己“我应该在哪里放置这种方法?” 或“我们是否应该在此服务中再添加一种方法? 它已经很大了。” 新的东西应该无缝地或完全不适合,在这种情况下,您可以考虑编写新的应用程序(是的,为什么不呢?)。

此外,添加功能应该意味着只需实现一个接口,并且只有在该接口之后,您才可以考虑使用开发工具–也许还没有,这取决于抽象的深度。 换一种说法,删除功能或逻辑应该意味着仅从某个位置删除对象的实例化或修饰,并且要注意,这不应在项目中留下任何未调用的方法。 最坏的情况是,您应该有一个未使用的

综上所述,以上所有内容听起来可能很奇怪,但是您应该这样想:您始终确保从业务逻辑中抽象出View和Persistence层; 为什么不更进一步,将JDK隐藏起来呢? 我知道,您永远不必更改它,但是很明显,在没有完全抽象和封装的情况下使用它会将代码变成半OOP事物,这种事物只会继续增长并变形。 最后,是的,让我们假设JDK(实际上更准确地说是Java SE)将消失:您构造的对象和测试将保持不变,您只需要使用手头的新工具包提供新的实现即可; 这就是OOP的全部意义!

翻译自: https://www.javacodegeeks.com/2019/06/hide-all.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/341587.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

E1 PCM设备的主要特点介绍

E1 PCM设备是目前国内企业最常用的综合接入通信设备,它利用标准的E1数据传输通道,采用PCM制式,直接提供语音、数据、图像等多种用户接口。接下来飞畅科技的小编来为大家详细介绍下E1 PCM设备的主要特点,一起来看看吧! …

docker集群_使用Docker,Chef和Amazon OpsWorks进行集群范围的Java / Scala应用程序部署...

docker集群Docker非常适合在单个节点上运行隔离的容器。 但是,大多数软件系统都在多个节点上运行,因此,除了Docker之外,我们还需要某种方法来指定哪些容器应在哪些节点上运行。 我要解决的特定问题如下:我有两个Scala…

PCM信号是什么信号?

PCM信号是模拟信号呢,还是数字信号呢?当然是数字信号啦!PCM的完整定义是:将模拟信号的抽样量化值变换成代码称为脉冲编码调制(PCM设备)。 在光纤通信系统中,光纤中传输的是二进制光脉冲“0”码…

SDH光传输设备是什么?SDH设备特点介绍

SDH光传输设备是一种,将复接、线路传输以及交换功能融合为一体的、并且由统一网管系统操作的综合信息传送网络。SDH光传输设备,他可实现网络有效管理、能实时业务监控、能动态网络维护、不同厂商设备间的互通等多项功能。 SDH光传输设备能大大提高网络资…

通过MicroProfile上下文传播增强了CDI上下文和隔板

当将CDI与异步执行方法(例如ManagedExecutorService ,传统上不可能访问在原始线程中处于活动状态的所有CDI范围。 MicroProfile Context Propagation可以定义线程执行上下文并将其传递到完成阶段,尽管我们的代码是异步执行的,但它…

ProtoBuff3.0.0在Ubuntu上安装

ProtoBuff3.0.0在Ubuntu上安装 最近安装ns3,运行别人代码,编译build.py时出现需要update Proto的问题,本来想安装最新版本,因为需要翻墙,就参考大部分博客,安装3.0.0版本。(备注:直…

SDH与PDH的区别介绍

PDH准同步数字系列,1-4次群2048K、8488K、34368K、139264K,有美国/日本标准和欧洲标准,我国沿用的是欧洲标准;30/32路组成一个1次群;各个厂家产品大多互相不兼容。 SDH同步数字系列,网元都带PDH接口&#…

Ubuntu 系统入门

1 Ubuntu 常用文件夹处理命令 1、 cd … //返回上一层目录 cd / //返回根文件夹 2、ls 列出文件名称 3、unzip XXX 对zip 压缩包解压 4、sudo baobab 进行磁盘空间分析 5、 利用vim修改只读文件内容 ::w !sudo tee % (注意空格) 2 Ubuntu显示隐藏文件 …

什么是MSTP(多业务传输平台)?

Multi-Service Transfer Platform简称MSTP,他是基于SDH的多业务传送平台的,同时也实现TDM、ATM、以太网等业务的接入、处理和传送,提供统一网管的多业务节点。 当前通信时代随着不断增长的IP数据、话音、图像等多种业务传送需求扩展&#xf…

spring boot示例_Spring Boot上的Spring社交示例,或者我如何停止担心和喜欢自动配置...

spring boot示例对于Spring Boot 1.1.0.RC1,添加了自动配置和Spring Social的启动程序pom,这意味着我不必向pom添加一百个依赖关系,并且将为我处理许多毫无意义的Spring配置。 让我们来看一个例子。 我将实现一个两页的Web应用程序。 一个将…

安装虚拟机后,启动出错的解决办法

安装虚拟机后,启动出错,需要找到路径中的配置文件 使用记事本或其他应用打开 在vmci0.prensent值改为FALSE,才可以正常启动

什么是E1接口,E1的使用注意事项

欧洲的30路脉码调制PCM简称E1,速率是2.048Mbit/s 。 我国采用的是欧洲的E1标准。E1接口有G.703非平衡的75 ohm,平衡的120 ohm2种接口。接下来就由飞畅科技的小编来为大家详细介绍下使用E1的三种方法及注意事项,一起来看看吧&#…

Java序列化魔术方法及其示例使用

在上一篇文章中, 您需要了解有关Java序列化的所有知识 ,我们讨论了如何通过实现Java序列化来启用类的可序列化性。 Serializable接口。 如果我们的类未实现Serializable接口,或者该类具有对非Serializable类的引用,则JVM将抛出No…

主机文件复制到Ubuntu系统中

实现这个功能,需要VMware Tool安装 在虚拟机选项卡中安装VMware Tool 将DVD盘中压缩包复制到home文件夹 解压后,进入该文件夹,打开终端,执行安装文件 安装完成后重启电脑即可 ------------------------------------ 参考链接…

光纤的熔接,光纤接续步骤小知识

做光纤工程的应该都知道,光纤熔接接续是光纤传输系统中工程量最大、技术要求最复杂的重要工序,其质量好坏直接影响光纤线路的传输质量和可靠性。进行有效的方法及正确熔接步骤极其重要的。今天就由飞畅科技的小编来为大家介绍一下光纤光缆的熔接步骤与三…

解决sudo apt-get update联网失败问题

更改源为中科院参考链接 源为清华参考链接2

ubuntu语言设置问题

ubuntu语言设置问题 参考博客ubuntu设置语言

针对新手的Java EE7和Maven项目-第2部分-为我们的应用程序定义一场简单的战争

从第一部分恢复 第1部分 我们刚刚定义了父 pom。 一种特殊的pom类型,它最终定义了我们的应用程序将要使用的库。 它还配置了所有用于包装我们应用程序每个模块的Maven工具。 您可以在此处 签出 -1部分示例代码。 因此,到目前为止,在将要开发…

电信级E1保护倒换设备产品介绍

1-8路E1倒换保护设备是由杭州飞畅科技有限公司自主研发生产的E1线路无损伤自动切换设备。本系列设备是本公司研制的专用超大规模集成电路的基础上开发的E1切换器。提供1-8路独立的E1倒换保护功能(816E1),在默认工作方式下,主用E1线路出现故障时&#xff…

电脑杀毒优化问题

实测有用: 软件杀毒与卸载 哔哩哔哩杀毒卸载 电脑性能显卡优化 N卡优化