Spring 中的 IoC 的实现原理就是工厂模式加反射机制。
<span>interface<span> <span>Fruit<span> {</span></span></span></span>
<span>     <span>public<span> <span>abstract<span> <span>void<span> eat();</span></span></span></span></span></span></span>
<span>}</span>
<span>class<span> <span>Apple<span> <span>implements<span> <span>Fruit<span> {</span></span></span></span></span></span></span></span>
<span>    <span>public<span> <span>void<span> eat(){</span></span></span></span></span>
<span>        <span>System<span>.out.println(<span>"Apple"<span>);</span></span></span></span></span>
<span>    }</span>
<span>}</span>
<span>class<span> <span>Orange<span> <span>implements<span> <span>Fruit<span> {</span></span></span></span></span></span></span></span>
<span>    <span>public<span> <span>void<span> eat(){</span></span></span></span></span>
<span>        <span>System<span>.out.println(<span>"Orange"<span>);</span></span></span></span></span>
<span>    }</span>
<span>}</span>
<span>class<span> <span>Factory<span> {</span></span></span></span>
<span>    <span>public<span> <span>static<span> <span>Fruit<span> getInstance(<span>String<span> <span>ClassName<span>) {</span></span></span></span></span></span></span></span></span></span></span>
<span>        <span>Fruit<span> f=<span>null<span>;</span></span></span></span></span>
<span>        <span>try<span> {</span></span></span>
<span>            f=(<span>Fruit<span>)<span>Class<span>.forName(<span>ClassName<span>).newInstance();</span></span></span></span></span></span></span>
<span>        } <span>catch<span> (<span>Exception<span> e) {</span></span></span></span></span>
<span>            e.printStackTrace();</span>
<span>        }</span>
<span>        <span>return<span> f;</span></span></span>
<span>    }</span>
<span>}</span>
<span>class<span> <span>Client<span> {</span></span></span></span>
<span>    <span>public<span> <span>static<span> <span>void<span> main(<span>String<span>[] a) {</span></span></span></span></span></span></span></span></span>
<span>        <span>Fruit<span> f=<span>Factory<span>.getInstance(<span>"io.github.dunwu.spring.Apple"<span>);</span></span></span></span></span></span></span>
<span>        <span>if<span>(f!=<span>null<span>){</span></span></span></span></span>
<span>            f.eat();</span>
<span>        }</span>
<span>    }</span>
<span>}</span>
Original: https://www.cnblogs.com/chinaifae/p/10443123.html
Author: 我是司
Title: Spring IoC 的实现机制
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/540719/
转载文章受原作者版权保护。转载请注明原作者出处!