如果有的话,用松散耦合或高耦合来改进我的代码?

Improving my code with loose coupling or high coupling if any?

我想通过创建与我的代码更低的耦合来使用 GRASP 改进我的代码。在我的例子中,我不确定我是否在做低耦合,我是否在做松耦合而不是高耦合?

我正在使用 Spring boot 制作我的项目。在我的管理控制器中,我正在处理两个 类:RestaurantcardServiceContentsectionService(来自我的服务层)。这两个 类 都实现了名为 I_RestaurantcardServiceI_ContentsectionService 的接口。

代码如下所示:

public class AdminController {
RestaurantCardService restaurantcardService;
ContentsectionService contentsectionService;
public AdminController (){
    this.restaurantcardService       = new RestaurantCardService ();
    this.contentsectionService       = new ContentsectionService ();
}

现在我的问题是:

如果我实现 RestaurantCardServiceContentsectionService 的接口作为属性的数据类型而不是 类 本身,耦合不会下降,因为我们可以在 RestaurantCardServiceContentsectionService?

的另一种变体中实现接口

然后它看起来像这样:

这是高度耦合的代码。您有 hard-coded 您在 class itself.It 中的依赖项将使 class 难以进行单元测试。

好的方法应该是通过构造函数获取依赖项,并且每个服务都应该有接口。

例如:-

 public class AdminController {
            private final RestaurantCardService restaurantcardService;
            private final ContentsectionService contentsectionService;
            public AdminController (final RestaurantCardService rcs,final ContentsectionService  css){
                this.restaurantcardService       = rcs;
                this.contentsectionService       = css;
            }

 AdminController  ac = new AdminController (new RestaurantCardServiceImpl(),new ContentsectionServiceImpl());


            so for unit testing you can pass mock services;

            for intance:


    AdminController  ac = new AdminController (new MockRestaurantCardServiceImpl(), new MockContentsectionServiceImpl());

享受编码!