我有一个类(让我们称它MyService
)在它的构造函数中接受两个依赖项.第一个与问题无关.第二个是PaymentDetails
.PaymentDetails的寿命比MyService长,后者由工厂创建以处理此特定请求.
在MyService.process()
,它:
new TransactionDetails()
对象并在其上设置各种东西,myPaymentDetails.setTransactionDetails( td );
PaymentDetails
必要时有很多方法.它是一个实体样式对象,当用户逐步浏览大约5页时,信息就会建立在该对象中.
困扰我的是,写作我的服务类取决于整个PaymentDetails
但只调用一个方法.
这困扰我,因为:
我的问题是:
解决此问题的最佳方法是什么,以便我的服务类具有最小的依赖性?
当然有些人已经处理过这一个.当程序员被OO过度使用并忘记性能和拥有数据库时,往往会发生这种情况.
举个例子,假设我们有一个电子邮件表,他们需要通过这个程序发送.在启动时,它会查找需要发送的任何内容,如下所示:
Emails = find_every_damn_email_in_the_database();
FOR Email in Emails
IF !Email.IsSent() THEN Email.Send()
Run Code Online (Sandbox Code Playgroud)
从一个不重复自己的角度来看这是一件好事,但有时这是不可避免的,它应该是:
Emails = find_unsent_emails();
FOR Email in Emails
Email.Send()
Run Code Online (Sandbox Code Playgroud)
这个名字有吗?
我们在尝试签出或更新工作副本时可重复地遇到错误.
我们的环境如下: -
我们正在运行svn checkout
QuickBuild.
结帐报告此错误: -
svn checkout http://qvsvn101/PayWay/PayWay/Branches/2014.R1/ D:\quickbuild_workspace\PayWay\Application\PointRelease\Release --non-interactive --username SrvAcc --password ****** -r 11523
Command return code: -1073741819
Command error output: This application has halted due to an unexpected error.
A crash report and minidump file were saved to disk, you can find them here:
C:\Users\SrvAcc\AppData\Local\Temp\svn-crash-log20140527164109.log
C:\Users\SrvAcc\AppData\Local\Temp\svn-crash-log20140527164109.dmp
Please send the log file to users_at_subversion.apache.org to help us analyze
and solve this problem.
NOTE: The crash …
Run Code Online (Sandbox Code Playgroud) 配置
我有 Eclipse 的 2019-12 (4.14.0) 版本(最近从 2019-03 升级),并安装了以下插件(其中包括):
TestNG 6.14.3.201902250526
TestNG M2E (Maven) Integration (Optional) 6.14.3.201902250526
TestNG P2 Features 6.14.3.r201802240500
Run Code Online (Sandbox Code Playgroud)
Eclipse 正在针对jdk1.8.0_152
.
在 Eclipse 中,我的 Java 构建路径包括testng-6.14.3
. 我试图将 Eclipse 插件版本与项目中使用的版本相匹配。
在Properties -> TestNG
我下面有所有的默认设置。这里没有“使用项目TestNG.jar”的设置。
什么有效
当我使用 Gradle 从命令行运行测试时,它们都顺利通过。
Eclipse 中没有显示编译错误。
什么不起作用
当我从 Eclipse 运行测试(通过右键单击一个类)时,控制台显示:
Error: Could not find or load main class org.testng.remote.RemoteTestNG
Run Code Online (Sandbox Code Playgroud)
看来我需要一份testng-remote.jar
. 它应该作为插件的一部分安装,还是我打算将它build.gradle
作为依赖项包含在我的插件中?
为什么我不能从 Eclipse 运行测试?我是否需要进一步安装一些东西来解决这个错误?
我试过的
我尝试删除并重新安装 TestNG 插件。
如果我需要实施从系统到系统(发票,采购订单,汇款通知等)的业务文件的发送和接收,您会建议哪种标准可以实现最佳互操作?为什么?它可以是XML或其他.
在数据库世界中,我们进行了规范化.您可以从设计开始,转动步骤并最终使用正常形式的数据库.这是基于数据的语义完成的,可以被认为是一系列设计重构.
在面向对象的设计中,我们拥有SOLID原则和各种其他特殊设计指南.
您是否认为可以为OO定义等效的正规形式,这样一系列重构步骤可以将程序性的代码片段(或者设计不当的OO设计)转换为正确的(在一些定义明确的意义上)相同的功能?
(NB.很高兴制作这个社区wiki)
theory oop normalization relational-database solid-principles
我有一个表和一个访问该表的查询(在PL/SQL包中).通常每周收集统计数据.
在表上运行了大量更新,导致特定索引列上的数据分布明显不同.Oracle使用的查询计划(我可以看到v$sqlarea
)是次优的.如果我explain plan
从SQL*Plus中获取相同的*查询,则返回一个好的计划.
我已经收集了桌面上的统计数据.Oracle仍在使用它最初提出的查询计划. v$sqlarea.last_load_time
表明这是在统计数据生成之前生成的计划.我认为重新生成统计信息会使SQL缓存中的计划失效.
有没有办法从SQL缓存中删除这个语句?
(*不是字符字符,在SQL缓存中匹配相同,但是相同的语句).
我在Oracle中编写SQL.在SQL中,我使用了两次相同的子查询.我正在尝试找到替换此类常见子查询或重用的查询的最佳方法.
我正在考虑为子查询创建一个视图,但我不允许这样做.全局临时表可能是其他解决方案,但我开始知道这些表并不是真正用于创建和丢弃的.
我是Go语言的初学者。我可能认为从其他语言中提取的东西太传统了,但这就是我想在Go中做的事情。假设以下用例
在Go中可行吗?
我从集线器获取 RemoteWebDriver,如下所示:
RemoteWebDriver driver = new RemoteWebDriver(
new URL("http://whatever:4444/wd/hub"),
DesiredCapabilities.internetExplorer() );
Run Code Online (Sandbox Code Playgroud)
有没有办法以编程方式找出远程驱动程序正在网格中的哪个节点上运行?
我想记录下来以追踪间歇性测试失败。
oracle ×2
apache ×1
coupling ×1
crash ×1
eclipse ×1
go ×1
interop ×1
invoice ×1
java ×1
oop ×1
performance ×1
reflection ×1
selenium ×1
statistics ×1
svn ×1
terminology ×1
testng ×1
theory ×1
x12 ×1
xml ×1