Rumah > Java > javaTutorial > Cara menggunakan corak kilang Java untuk mencipta objek dan meningkatkan penggunaan semula dan fleksibiliti kod

Cara menggunakan corak kilang Java untuk mencipta objek dan meningkatkan penggunaan semula dan fleksibiliti kod

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2023-05-14 08:25:05
ke hadapan
875 orang telah melayarinya

Pengenalan

Corak reka bentuk kilang Java terutamanya terbahagi kepada tiga jenis:

Corak Kilang Mudah: Gunakan kelas kilang untuk merangkum proses penciptaan objek, dan pelanggan hanya perlu Dapatkan yang berbeza objek produk dengan melepasi parameter yang berbeza, dengan itu mengelakkan penciptaan objek produk secara langsung oleh pelanggan

Corak Kaedah Kilang: Abstrak kelas kilang, dan setiap kelas produk tertentu sepadan dengan Kelas kilang tertentu menghasilkan objek produk yang sepadan melalui polimorfisme. Pelanggan hanya perlu mengetahui antara muka kilang dan kelas pelaksanaannya Ia boleh menukar pelaksanaan kilang secara dinamik mengikut keperluan, dan kebolehskalaan adalah lebih baik.

Corak Kilang Abstrak: Berdasarkan corak kaedah kilang. , kelas kilang disarikan semula, dan berbilang antara muka kilang dimasukkan ke dalam satu antara muka kilang Setiap produk tertentu sepadan dengan kelas kilang tertentu Melalui berbilang Ia mempunyai skala yang lebih baik dan tahap abstraksi yang lebih tinggi, tetapi ia juga meningkatkan kerumitan sistem

.

Corak Kilang Mudah

Mula-mula tentukan Kelas produk abstrak:

1

2

3

4

5

6

7

8

package com.fanqiechaodan.factory.simple.product;

/**

 * @Classname Product

 * @Description 抽象产品类

 */

public abstract class Product {

    public abstract void use();

}

Salin selepas log masuk

Kemudian tentukan kelas produk tertentu

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

public class ProductA extends Product{

    @Override

    public void use() {

        System.out.println("使用具体产品类A...");

    }

}

public class ProductB extends Product{

    @Override

    public void use() {

        System.out.println("使用具体产品类B...");

    }

}

public class ProductC extends Product{

    @Override

    public void use() {

        System.out.println("使用具体产品类C...");

    }

}

Salin selepas log masuk

Seterusnya tentukan kelas kilang untuk mencipta produk yang berbeza

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

package com.fanqiechaodan.factory.simple.factory;

import com.fanqiechaodan.factory.simple.product.Product;

import com.fanqiechaodan.factory.simple.product.ProductA;

import com.fanqiechaodan.factory.simple.product.ProductB;

import com.fanqiechaodan.factory.simple.product.ProductC;

/**

 * @Classname SimpleFactory

 * @Description 工厂类

 */

public class SimpleFactory {

    public static Product createProduct(String type) {

        switch (type) {

            case "A":

                return new ProductA();

            case "B":

                return new ProductB();

            case "C":

                return new ProductC();

            default:

                throw new RuntimeException("不支持的产品类型:" + type);

        }

    }

}

Salin selepas log masuk

Ujian:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

package com.fanqiechaodan.factory.simple;

import com.fanqiechaodan.factory.simple.factory.SimpleFactory;

import com.fanqiechaodan.factory.simple.product.Product;

/**

 * @Classname Demo

 * @Description 简单工厂模式

 */

public class Demo {

    public static void main(String[] args) {

        Product productA = SimpleFactory.createProduct("A");

        productA.use();

        Product productB = SimpleFactory.createProduct("B");

        productB.use();

        Product productC = SimpleFactory.createProduct("C");

        productC.use();

        Product productD = SimpleFactory.createProduct("D");

        productD.use();

    }

}

Salin selepas log masuk

Cara menggunakan corak kilang Java untuk mencipta objek dan meningkatkan penggunaan semula dan fleksibiliti kod

Corak kaedah kilang

Pertama tentukan antara muka untuk mewakili produk

1

2

3

4

5

6

7

8

package com.fanqiechaodan.factory.method.product;

/**

 * @Classname Product

 * @Description 产品接口

 */

public interface Product {

    void use();

}

Salin selepas log masuk

Kedua tentukan dua kelas pelaksanaan produk tertentu

1

2

3

4

5

6

7

8

9

10

11

12

public class ProductA implements Product{

    @Override

    public void use() {

        System.out.println("使用具体产品A...");

    }

}

public class ProductB implements Product{

    @Override

    public void use() {

        System.out.println("使用具体产品B...");

    }

}

Salin selepas log masuk

Kemudian tentukan kilang Antara muka digunakan untuk mencipta produk

1

2

3

4

5

6

7

8

9

package com.fanqiechaodan.factory.method.factory;

import com.fanqiechaodan.factory.method.product.Product;

/**

 * @Classname Factory

 * @Description 工厂接口

 */

public interface Factory {

    Product createProduct();

}

Salin selepas log masuk

Seterusnya, tentukan dua kelas pelaksanaan kilang tertentu, masing-masing digunakan untuk mencipta produk yang berbeza

1

2

3

4

5

6

7

8

9

10

11

12

public class FactoryA implements Factory{

    @Override

    public Product createProduct() {

        return new ProductA();

    }

}

public class FactoryB implements Factory{

    @Override

    public Product createProduct() {

        return new ProductB();

    }

}

Salin selepas log masuk

Uji

1

2

3

4

5

6

7

8

9

10

11

12

13

package com.fanqiechaodan.factory.method.factory;

import com.fanqiechaodan.factory.method.product.Product;

import com.fanqiechaodan.factory.method.product.ProductB;

/**

 * @Classname FactoryB

 * @Description 工厂实现类B

 */

public class FactoryB implements Factory{

    @Override

    public Product createProduct() {

        return new ProductB();

    }

}

Salin selepas log masuk

Cara menggunakan corak kilang Java untuk mencipta objek dan meningkatkan penggunaan semula dan fleksibiliti kod

Corak Kilang Abstrak

Pertama tentukan produk abstrak

1

2

3

4

5

6

public interface ProductA {

    void doSomething();

}

public interface ProductB {

    void doSomething();

}

Salin selepas log masuk

Kedua tentukan produk khusus

rreee

Kemudian tentukan kilang abstrak

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

public class ProductA1 implements ProductA{

    @Override

    public void doSomething() {

        System.out.println("ProductA1 doSomething ...");

    }

}

public class ProductA2 implements ProductA{

    @Override

    public void doSomething() {

        System.out.println("ProductA2 doSomething ...");

    }

}

public class ProductB1 implements ProductB{

    @Override

    public void doSomething() {

        System.out.println("ProductB1 doSomething ...");

    }

}

public class ProductB2 implements ProductB{

    @Override

    public void doSomething() {

        System.out.println("ProductB2 doSomething ...");

    }

}

Salin selepas log masuk

Seterusnya tentukan Kilang khusus

1

2

3

4

5

6

7

8

9

10

11

package com.fanqiechaodan.factory.abstractfactory.factory;

import com.fanqiechaodan.factory.abstractfactory.product.ProductA;

import com.fanqiechaodan.factory.abstractfactory.product.ProductB;

/**

 * @Classname AbstractFactory

 * @Description 抽象工厂

 */

public interface AbstractFactory {

    ProductA createProductA();

    ProductB createProductB();

}

Salin selepas log masuk

Ujian

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

public class Factory1 implements AbstractFactory{

    @Override

    public ProductA createProductA() {

        return new ProductA1();

    }

    @Override

    public ProductB createProductB() {

        return new ProductB1();

    }

}

public class Factory2 implements AbstractFactory{

    @Override

    public ProductA createProductA() {

        return new ProductA2();

    }

    @Override

    public ProductB createProductB() {

        return new ProductB2();

    }

}

Salin selepas log masuk

Cara menggunakan corak kilang Java untuk mencipta objek dan meningkatkan penggunaan semula dan fleksibiliti kod

Atas ialah kandungan terperinci Cara menggunakan corak kilang Java untuk mencipta objek dan meningkatkan penggunaan semula dan fleksibiliti kod. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Isu terkini
Bolehkah java digunakan sebagai bahagian belakang web?
daripada 1970-01-01 08:00:00
0
0
0
Tidak dapat memasang java
daripada 1970-01-01 08:00:00
0
0
0
Pasang JAVA
daripada 1970-01-01 08:00:00
0
0
0
Bagaimanakah php melaksanakan penyulitan sha1 java?
daripada 1970-01-01 08:00:00
0
0
0
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan