原廠模式(think in java中的設計模式)

來源:互聯網
上載者:User

標籤:port   不同的   拼接   size   原廠模式   class   one   int   nts   

原廠模式:原廠模式是利用工廠類的Factory 方法建立對象的一種設計模式,目的是建立對象,但是很多時候建立對象我們會考慮很多其他因素~~~~比如限定輸入,限定傳回值是否某個,比如在建立的過程中進行一些判斷,通過不同的原廠模式就能把這些東西分離開來。

package com.dhh.test;import org.junit.Test;public class Test2 {    @Test    public void t() throws InstantiationException, IllegalAccessException, ClassNotFoundException{        //A類實現了C介面可以返回        A a=(A) Factory.builder("A");        System.out.println(a.name);        //B也實現了C介面可以返回,但是我試過如果B去除了C介面則不可以返回從而限制了建立類的類型        B b=(B) Factory.builder("B");        System.out.println(b.name);            }}class Factory{    //C作為介面居然可以是傳回值    static public  C  builder(String typeName )             throws InstantiationException, IllegalAccessException, ClassNotFoundException{        //反射建立類        //直接傳入A,B類型名,工廠內部拼接許可權定名可以限制建立類的包        Object o=Class.forName("com.dhh.test."+typeName).newInstance();        //居然可以強轉C介面        return (C) o;    }}interface C{    }class A implements C{    String name="168";}class B implements C{    String name="178";}

以上是一個靜態工廠的建立類的過程,建立類的所有過程都被隱藏

原廠模式(think in java中的設計模式)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.