1. 程式人生 > >工廠模式(think in java中的設計模式)

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

org 我們 import lac otf 返回值 類型 int ava

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

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中的設計模式)