日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

java静态工厂方法模式_设计模式:简单工厂模式(静态工厂方法模式)

發布時間:2025/3/8 asp.net 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java静态工厂方法模式_设计模式:简单工厂模式(静态工厂方法模式) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡單工廠的構成包括三個角色:

1)抽象產品類

2)具體產品類(繼承抽閑產品類)

3)工廠類(生產具體產品)

具體代碼實現

1、抽象產品類

/**

* 抽象類

*/

public abstract class Car {

/**

* 產品抽象方法,將會由具體產品類實現

*/

public abstract void driving();

}

2、具體產品類

/**

* 具體產品類BenZCar

*/

public class BenZCar extends Car {

@Override

public void driving() {

System.out.println("BenZCar is Driving!!!");

}

}

/**

* 具體產品類BMWCar

*/

public class BMWCar extends Car {

@Override

public void driving() {

System.out.println("BMWCar is Driving!!!");

}

}

3、工廠類

/**

* 簡單工廠類

*/

public class CarFactory {

public static Car create(String type) {

Car car = null;

switch (type) {

case "bmw":

car = new BMWCar();

break;

case "benz":

car = new BenZCar();

break;

}

return car;

}

}

4、調用(這里使用AndroidStudio代碼測試,如果是java的可以在main函數中測試)

public class MainActivity extends AppCompatActivity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

findViewById(R.id.id_bmw).setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

CarFactory.create("bmw").driving();

}

});

findViewById(R.id.id_benz).setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

CarFactory.create("benz").driving();

}

});

}

}

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical">

android:id="@+id/id_bmw"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="制造一個BWM汽車"

android:layout_marginBottom="15dp"/>

android:id="@+id/id_benz"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="制造一個Benz汽車"

android:layout_marginBottom="15dp"/>

5、界面

6、測試結果

08-20 10:59:55.001 3660-3660/com.tech.aile.designpatterns I/System.out: BMWCar is Driving!!!

08-20 10:59:56.573 3660-3660/com.tech.aile.designpatterns I/System.out: BenZCar is Driving!!!

7、使用場景

1)工廠類創建的具體對象要較少,不適用子類過多,子類層級過深的場景。

2)看客戶只需要傳入什么類型的參數,不用關注創建對象的邏輯。

8、優點

根據參數類型獲取實例,不用關注具體細節,降低了耦合

9、缺點

具體的產品類型在編譯期間已經確定,不能更改,如果需要新增具體產品就需要修改工廠類,添加新具體產品類,違背了封閉開放原則;

簡單工廠必須知道所有需要生產具體產品類,不適用子類過多,子類層級過深的場景

總結

以上是生活随笔為你收集整理的java静态工厂方法模式_设计模式:简单工厂模式(静态工厂方法模式)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。