属性注入实现方式
一、构造函数注入
- 示例代码
public class Person { private Hand hand; private Footer footer; private Head head; public Person(Hand hand, Footer footer, Head head) { this.hand = hand; this.footer = footer; this.head = head; } }
public class Person { private Hend hend; public Person() { head = new Head(); } }
- 说明
通过Person 的构造函数,向Person 传递了一个Hand对象。
这意味着两个对象之间的耦合变低了。
Person类不需要知道 Hand 的具体实现,只要继承了原始 Hand 类,任何类型 Hand 都符合要求
二、setter注入
- 示例代码
public class Person { private Hend hend; public Person() { head = new Head(); } public void setHead(Head head) { this.head = head; } }
三、接口注入
- 示例代码
public class Person implements InjectFinder { private Head head; }
public interface InjectFinder { void injection(Head head); }
@Test public void TestDo() { Person person = new Person(); person.injection(new Head()); person.doSomething(); }