日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
java工廠模式三種詳解

工廠模式是一種創(chuàng)建型設(shè)計(jì)模式,它提供了一種在不指定具體類的情況下創(chuàng)建對(duì)象的方式,在Java中,工廠模式主要有兩種實(shí)現(xiàn)方式:簡(jiǎn)單工廠模式和工廠方法模式,下面將詳細(xì)介紹這兩種工廠模式的使用方法。

十載的岳普湖網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都全網(wǎng)營(yíng)銷的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整岳普湖建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)公司從事“岳普湖網(wǎng)站設(shè)計(jì)”,“岳普湖網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

1、簡(jiǎn)單工廠模式

簡(jiǎn)單工廠模式又稱為靜態(tài)工廠模式,它是一種創(chuàng)建型設(shè)計(jì)模式,提供了一種在不指定具體類的情況下創(chuàng)建對(duì)象的方式,在Java中,簡(jiǎn)單工廠模式主要有兩種實(shí)現(xiàn)方式:靜態(tài)方法和實(shí)例方法。

(1)靜態(tài)方法

靜態(tài)方法是在類級(jí)別上定義的方法,可以直接通過(guò)類名調(diào)用,在簡(jiǎn)單工廠模式中,我們可以使用靜態(tài)方法來(lái)創(chuàng)建對(duì)象,下面是一個(gè)簡(jiǎn)單的例子:

public class SimpleFactory {
    public static Product createProduct(String type) {
        if ("A".equals(type)) {
            return new ConcreteProductA();
        } else if ("B".equals(type)) {
            return new ConcreteProductB();
        } else {
            throw new IllegalArgumentException("Invalid product type");
        }
    }
}

在這個(gè)例子中,我們定義了一個(gè)SimpleFactory類,它有一個(gè)靜態(tài)方法createProduct,該方法接受一個(gè)字符串參數(shù)type,根據(jù)type的值創(chuàng)建并返回相應(yīng)的產(chǎn)品對(duì)象,如果傳入的type值無(wú)效,則拋出異常。

(2)實(shí)例方法

實(shí)例方法是在類的實(shí)例上定義的方法,需要先創(chuàng)建類的實(shí)例才能調(diào)用,在簡(jiǎn)單工廠模式中,我們也可以使用實(shí)例方法來(lái)創(chuàng)建對(duì)象,下面是一個(gè)簡(jiǎn)單的例子:

public class SimpleFactory {
    public Product createProduct(String type) {
        if ("A".equals(type)) {
            return new ConcreteProductA();
        } else if ("B".equals(type)) {
            return new ConcreteProductB();
        } else {
            throw new IllegalArgumentException("Invalid product type");
        }
    }
}

在這個(gè)例子中,我們定義了一個(gè)SimpleFactory類,它有一個(gè)實(shí)例方法createProduct,該方法接受一個(gè)字符串參數(shù)type,根據(jù)type的值創(chuàng)建并返回相應(yīng)的產(chǎn)品對(duì)象,如果傳入的type值無(wú)效,則拋出異常。

2、工廠方法模式

工廠方法模式是一種創(chuàng)建型設(shè)計(jì)模式,它提供了一種在不指定具體類的情況下創(chuàng)建對(duì)象的方式,在Java中,工廠方法模式主要有兩種實(shí)現(xiàn)方式:接口和抽象類。

(1)接口

接口是一種特殊的抽象類型,它只包含抽象方法和常量,在工廠方法模式中,我們可以使用接口來(lái)定義產(chǎn)品的創(chuàng)建方法,下面是一個(gè)簡(jiǎn)單的例子:

public interface Product {
    void doSomething();
}

在這個(gè)例子中,我們定義了一個(gè)Product接口,它有一個(gè)抽象方法doSomething,接下來(lái),我們可以為不同的產(chǎn)品實(shí)現(xiàn)這個(gè)接口:

public class ConcreteProductA implements Product {
    @Override
    public void doSomething() {
        System.out.println("ConcreteProductA is doing something");
    }
}
public class ConcreteProductB implements Product {
    @Override
    public void doSomething() {
        System.out.println("ConcreteProductB is doing something");
    }
}

我們可以創(chuàng)建一個(gè)工廠類來(lái)根據(jù)接口創(chuàng)建產(chǎn)品對(duì)象:

public class Factory {
    public static Product createProduct(String type) {
        if ("A".equals(type)) {
            return new ConcreteProductA();
        } else if ("B".equals(type)) {
            return new ConcreteProductB();
        } else {
            throw new IllegalArgumentException("Invalid product type");
        }
    }
}

在這個(gè)例子中,我們定義了一個(gè)Factory類,它有一個(gè)靜態(tài)方法createProduct,該方法接受一個(gè)字符串參數(shù)type,根據(jù)type的值創(chuàng)建并返回相應(yīng)的產(chǎn)品對(duì)象,如果傳入的type值無(wú)效,則拋出異常。

(2)抽象類

抽象類是一種特殊的類,它不能被實(shí)例化,只能被繼承,在工廠方法模式中,我們可以使用抽象類來(lái)定義產(chǎn)品的創(chuàng)建方法,下面是一個(gè)簡(jiǎn)單的例子:

public abstract class AbstractProduct {
    abstract void doSomething();
}

在這個(gè)例子中,我們定義了一個(gè)抽象類AbstractProduct,它有一個(gè)抽象方法doSomething,接下來(lái),我們可以為不同的產(chǎn)品繼承這個(gè)抽象類:

public class ConcreteProductA extends AbstractProduct {
    @Override
    public void doSomething() {
        System.out.println("ConcreteProductA is doing something");
    }
}
public class ConcreteProductB extends AbstractProduct {
    @Override
    public void doSomething() {
        System.out.println("ConcreteProductB is doing something");
    }
}

標(biāo)題名稱:java工廠模式三種詳解
分享網(wǎng)址:http://www.5511xx.com/article/dhoeccj.html