小编Nil*_*esh的帖子

什么是Humble Object模式以及何时有用?

我正在阅读Dino Esposito关于如何在ASP.NET MVC中测试AsyncConrollers的文章,在那里他使用了"Humble Object"模式,而没有详细介绍.

谷歌周围也没有运气.

那么,Humble Object模式是什么?什么时候有用?

.net c# design-patterns

17
推荐指数
3
解决办法
9985
查看次数

何时适合使用双向关联,何时不使用?

让我们假设我们想构建一个类似于eBay的应用程序,其中我们有一个名为Customer的实体和一个名为的实体Order.

从关系角度来看,我将其建模为:

Customer
+----+-----+
| ID | ... |
+----+-----+

Order
+----+-------------+-----+
| ID | CUSTOMER_ID | ... |
+----+-------------+-----+
Run Code Online (Sandbox Code Playgroud)

现在,当我想将其映射到JPA时,我有多种选择:

  1. 创建从Order到Customer的单向多对一关联.恕我直言,这是最接近关系模型.缺点是,为了找到给定客户的所有订单,我必须编写JPQL查询,因为客户对其订单一无所知.此外,我不能以OO自然的方式为客户添加新订单(例如customer.addOrder(aNewOrder);).

  2. 创建从客户到订单的一对多关联.这样,为了找到我可以使用的给定客户的所有订单,我可以customer.getOders()以OO自然方式为客户添加新订单.缺点是,为了找出已下达给定订单的客户,我应该使用JPQL.

  3. 创建从客户到订单的双向一对多关联.这样我就不需要编写任何JPQL查询来检索客户或已下达给定订单的客户的所有订单.缺点是增加了维护双向关联的复杂性.

因此,我没有看到关于是否必须使用单向关联或双向关联是否"正确"的明确论据.换句话说,在我看来,这一切都归结为个人偏好和模特的设计者/实施者的品味.

我是对的还是有规则可以确定给定关联的正确方向性?

orm entity-relationship hibernate jpa

14
推荐指数
1
解决办法
2589
查看次数

Spring @Transactional在JUnit测试中不起作用?

我使用的是Spring 3.2,Hibernate和JUnit 4.

我的Dao课程如下:

@Transactional public class SomeDaoImpl implements SomeDao {

如果直接从Web应用程序执行,则对此工作进行更新操作.但是,我发现执行更新方法的junit集成测试实际上并不会保留更改.在执行junit方法时,事务是否会滚动事务?

spring hibernate transactional spring-test junit4

12
推荐指数
3
解决办法
3万
查看次数

如何在Spring Roo中删除实体?

我不小心在Roo中创建了几个实体.

有没有办法删除这些?我浏览了命令列表,但没有遇到任何有意义的事情?

有命令还是我必须从头开始?

spring-roo

11
推荐指数
1
解决办法
5448
查看次数

如何在Eclipse中保存查找/替换设置?

Eclipse有一个非常棒的查找/替换系统,支持正则表达式.我发现我经常使用很多相同的正则表达式查找/替换.Eclipse查找/替换对话框确实将最后几个查找命令存储在组合框中,但是大于8的任何查找都会被推出.此外,它不会将查找和替换命令一起存储为一个设置,它只是将最近使用的命令存储在一起.

Eclipse中是否有任何方法(或者可能是Eclipse的插件)将查找/替换命令与其他设置一起存储(即区分大小写等)

regex eclipse replace

11
推荐指数
1
解决办法
509
查看次数

我可以动态计算技术债务吗?

我在"程序"文件夹中有大量单独的,不相关的Java程序,我真的希望能够为每个程序自动计算技术债务分数.我知道SonarQube可以让你用Sonar-Runner做这个(有点) ,但是我真的想要一种动态的方法,所以我可以让脚本分析并编写所有程序中的技术债务分数.程序"文件夹到csv.

如果它可以为我做这件事,我非常愿意并且乐于尝试任何其他类型的技术债务软件(或质量).我真的很感激任何输入,或者想一想这是否可能?

eclipse technical-debt design-debt sonar-runner sonarqube

10
推荐指数
1
解决办法
945
查看次数

适配器模式与Liskov替换

适配器设计模式用于将类(Target)的接口转换为客户期望的另一个接口(Adaptee).适配器允许不兼容的类一起工作,否则由于它们的不兼容接口而无法工作.

适配器模式可以通过两种方式实现:继承(适配器模式的类版本)和组合(适配器模式的对象版本).

我的问题是关于使用继承实现的适配器模式的类版本.

以下是绘图编辑器的示例:

图1:

interface Shape   
{   
        Rectangle BoundingBox();   

        Manipulator CreateManipulator();   
}   

class TextView   
{   
        public TextView() { }   

        public Point GetOrigin() { }   

        public int GetWidth() { }   

        public int GetHeight() { }   
}  
interface Shape
{
        Rectangle BoundingBox();

        Manipulator CreateManipulator();
}

class TextView
{
        public TextView() { }

        public Point GetOrigin() { }

        public int GetWidth() { }

        public int GetHeight() { }
}
Run Code Online (Sandbox Code Playgroud)

我们想重用TextView类来实现TextShape,但是接口是不同的,因此,TextView和Shape对象不能互换使用.

是否应该更改TextView类以符合形状界面?也许不是.

TextShape可以通过以下两种方式之一使TextView接口适应形状的界面:

  1. 通过继承Shape的接口和TextView的实现(适配器模式的类版本)
  2. 通过在TextShape对象中编写TextView实例并使用TextView实例(适配器模式的对象版本)实现TextShape的接口.

类适配器

图2:

interface Shape   
{   
    Rectangle BoundingBox();   

    Manipulator …
Run Code Online (Sandbox Code Playgroud)

design-patterns liskov-substitution-principle adapter solid-principles

9
推荐指数
1
解决办法
2153
查看次数

战略模式应该是无国籍的吗?

必须是一个"四人帮"策略的类是完全无状态的(即没有字段)还是它可以包含不可变状态(即最终字段)?

design-patterns strategy-pattern stateless

9
推荐指数
3
解决办法
2181
查看次数

使用easymock在spring mvc中进行服务层测试

服务接口:

public List<UserAccount> getUserAccounts();
public List<UserAccount> getUserAccounts(ResultsetOptions resultsetOptions, List<SortOption> sortOptions);
Run Code Online (Sandbox Code Playgroud)

服务实施:

public List<UserAccount> getUserAccounts() {
    return getUserAccounts(null, null);
}
public List<UserAccount> getUserAccounts(ResultsetOptions resultsetOptions, List<SortOption> sortOptions) {
    return getUserAccountDAO().getUserAccounts(resultsetOptions, sortOptions);
}
Run Code Online (Sandbox Code Playgroud)

如何使用easymock或任何其他可行的测试方法对此进行测试?示例代码将不胜感激.对于简单的模拟传递对象作为参数非常混乱.有人清楚地解释了测试服务层的最佳方法是什么?测试服务接口会被视为单元测试还是集成测试?

junit unit-testing easymock

7
推荐指数
1
解决办法
6112
查看次数

如何确保junit测试的质量?

有没有经过验证的方法来验证junit测试或集成测试的质量?

您的业​​务分析师应该检查单元测试cerfity吗?或者还有其他方法吗?在传统的代码优先环境中,同行或领导会审查测试计划,但自动化测试如何?

我查看了这个stackflow线程,但无法提取任何有意义的东西.

思考?

junit

6
推荐指数
2
解决办法
2824
查看次数