代码之家  ›  专栏  ›  技术社区  ›  fastcodejava

关于春季代码与接口的思考?

  •  1
  • fastcodejava  · 技术社区  · 15 年前

    我知道在春天我们都编码到接口。因此,实现类不应该为外界所知。但它是一个公共类,所以任何人都可以创建实现类的实例。你如何防止这种情况发生?您将构造函数设置为私有吗?因为Spring创建了一个穿透反射的实例,所以应该可以。有人考虑过吗?我知道如果您创建一个实现类的实例,它将无法正常工作,因为依赖关系是 null 但这不是重点。

    3 回复  |  直到 12 年前
        1
  •  6
  •   Padmarag    15 年前

    Spring依赖注入的目的不仅仅是隐藏实现类。
    主要的一点是,您不必担心要使用哪个实现类。我们的责任是为Spring的容器提供类。

    依赖注入的基本思想是有一个单独的对象,即汇编程序,它用finder接口的适当实现填充lister类中的字段。
    参见 Martin Fowler 更多。

        2
  •  1
  •   ColinD    15 年前

    我不确定,但是我假设使用Spring,可以将实现类包设置为私有而不是公共的。我知道这是一个很好的练习。

        3
  •  -1
  •   saugata    15 年前

    如果在整个应用程序中只需要一个实例,则可以使用工厂方法/单例。其他引用此类的类也将使用相同的方法。

    http://static.springsource.org/spring/docs/2.0.x/reference/beans.html

    3.2.3.2.2。使用静态工厂方法实例化

     <bean id="exampleBean"
           class="examples.ExampleBean2"
           factory-method="createInstance"/>