Rumah  >  Artikel  >  Java  >  Bila Memilih: Kilang, Kaedah Kilang atau Kilang Abstrak?

Bila Memilih: Kilang, Kaedah Kilang atau Kilang Abstrak?

Susan Sarandon
Susan Sarandonasal
2024-11-02 05:49:02580semak imbas

When to Choose: Factory, Factory Method, or Abstract Factory?

Memahami Perbezaan Antara Kilang, Kaedah Kilang dan Corak Reka Bentuk Kilang Abstrak

Apabila mencipta objek dalam kod anda, menggunakan corak reka bentuk seperti Kilang, Kaedah Kilang dan Kilang Abstrak boleh meningkatkan fleksibiliti dan mengurangkan gandingan. Walau bagaimanapun, corak ini boleh mengelirukan.

Corak Kilang

Corak Kilang berfungsi sebagai "versi Kaedah Kilang yang dipermudahkan." Ia mencipta objek tanpa mendedahkan logik instantiasi kepada klien. Pendekatan ini menyediakan lokasi berpusat untuk penciptaan objek, memastikan ketekalan dan membolehkan proses penciptaan mudah diubah suai.

Corak Kaedah Kilang

Corak Kaedah Kilang mewujudkan antara muka untuk mencipta objek sambil mewakilkan instantiasi sebenar kepada subkelas. Ini membolehkan antara muka tunggal yang menyokong pelbagai pelaksanaan konkrit. Corak ini membolehkan fleksibiliti dan penyesuaian dalam sistem.

Corak Kilang Abstrak

Corak Kilang Abstrak menyediakan antara muka untuk mencipta keluarga objek berkaitan tanpa menyatakan kelas khusus mereka . Corak ini biasanya digunakan untuk senario suntikan pergantungan, membolehkan penukaran mudah antara pelaksanaan keluarga produk yang berbeza.

Bila Menggunakan Setiap Corak

  • Kilang : Gunakan apabila anda ingin memusatkan penciptaan objek dan mengurangkan gandingan dengan kelas konkrit.
  • Kaedah Kilang: Gunakan apabila anda perlu menyediakan antara muka biasa untuk penciptaan objek tetapi benarkan subkelas untuk sesuaikan pelaksanaan sebenar.
  • Kilang Abstrak: Gunakan apabila anda perlu mencipta keluarga objek berkaitan dengan pelaksanaan yang berbeza-beza dan mengekalkan konsistensi dalam keluarga tersebut.

Contoh Java

<code class="java">// Factory
class FruitFactory {
  public Apple makeApple() { return new Apple(); }
  public Orange makeOrange() { return new Orange(); }
}

// Factory Method
abstract class FruitPicker {
  protected abstract Fruit makeFruit();
  public void pick() { Fruit f = makeFruit(); ... }
}
class OrangePicker extends FruitPicker {
  protected Orange makeFruit() { return new Orange(); }
}

// Abstract Factory
interface PlantFactory {
  Plant makePlant();
  Picker makePicker();
}
class AppleFactory implements PlantFactory {
  public Plant makePlant() { return new Apple(); }
  public Picker makePicker() { return new ApplePicker(); }
}</code>

Atas ialah kandungan terperinci Bila Memilih: Kilang, Kaedah Kilang atau Kilang Abstrak?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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