四 属性注入的三种实现方式

属性注入实现方式

一、构造函数注入

  1. 示例代码
    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();
        }
    }
    
  2. 说明
    通过Person 的构造函数,向Person 传递了一个Hand对象。
    这意味着两个对象之间的耦合变低了。
    Person类不需要知道 Hand 的具体实现,只要继承了原始 Hand 类,任何类型 Hand 都符合要求

二、setter注入

  1. 示例代码
     public class Person {
        private Hend hend;
        public Person() {
            head = new Head();
        }
        public void setHead(Head head) {
            this.head = head;
        }
    }
    

三、接口注入

  1. 示例代码
    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();
    }
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值