IT评测·应用市场-qidao123.com

标题: 计划模式之抽象工厂模式 [打印本页]

作者: 愛在花開的季節    时间: 2025-3-20 08:25
标题: 计划模式之抽象工厂模式
1.创建抽象产物的接口

  1. // 手机的标准功能
  2. interface Phone {
  3.     void call(); // 必须能打电话
  4. }
  5. // 耳机的标准功能
  6. interface Earphone {
  7.     void playSound(); // 必须能播放声音
  8. }
复制代码
作用

2.详细产物实现

2.1.苹果牌的电话和耳机
  1. // 苹果手机
  2. class iPhone implements Phone {
  3.     @Override
  4.     public void call() {
  5.         System.out.println("iPhone 打电话");
  6.     }
  7. }
  8. // 苹果耳机
  9. class AirPods implements Earphone {
  10.     @Override
  11.     public void playSound() {
  12.         System.out.println("AirPods 播放音乐");
  13.     }
  14. }
复制代码
作用

2.2.华为牌的手机和耳机
  1. // 华为手机
  2. class MatePhone implements Phone {
  3.     @Override
  4.     public void call() {
  5.         System.out.println("华为 MatePhone 打电话");
  6.     }
  7. }
  8. // 华为耳机
  9. class FreeBuds implements Earphone {
  10.     @Override
  11.     public void playSound() {
  12.         System.out.println("华为 FreeBuds 播放音乐");
  13.     }
  14. }
复制代码
作用

3.抽象工厂接口

  1. interface TechFactory {
  2.     Phone createPhone();     // 工厂能生产手机
  3.     Earphone createEarphone(); // 工厂能生产耳机
  4. }
复制代码
作用

4.实现抽象工厂 

4.1.苹果工厂
  1. class AppleFactory implements TechFactory {
  2.     @Override
  3.     public Phone createPhone() {
  4.         return new iPhone(); // 生产苹果手机
  5.     }
  6.     @Override
  7.     public Earphone createEarphone() {
  8.         return new AirPods(); // 生产苹果耳机
  9.     }
  10. }
复制代码
作用

 4.2.华为工厂
  1. class HuaweiFactory implements TechFactory {
  2.     @Override
  3.     public Phone createPhone() {
  4.         return new MatePhone(); // 生产华为手机
  5.     }
  6.     @Override
  7.     public Earphone createEarphone() {
  8.         return new FreeBuds(); // 生产华为耳机
  9.     }
  10. }
复制代码
作用

5.用户

  1. public class Client {
  2.     public static void main(String[] args) {
  3.         // 选择苹果工厂
  4.         TechFactory appleFactory = new AppleFactory();
  5.         Phone myPhone = appleFactory.createPhone();
  6.         Earphone myEarphone = appleFactory.createEarphone();
  7.         myPhone.call();         // 输出:iPhone 打电话
  8.         myEarphone.playSound(); // 输出:AirPods 播放音乐
  9.         // 选择华为工厂
  10.         TechFactory huaweiFactory = new HuaweiFactory();
  11.         Phone hwPhone = huaweiFactory.createPhone();
  12.         Earphone hwEarphone = huaweiFactory.createEarphone();
  13.         hwPhone.call();         // 输出:华为 MatePhone 打电话
  14.         hwEarphone.playSound(); // 输出:华为 FreeBuds 播放音乐
  15.     }
  16. }
复制代码
关键逻辑

总结 

总结各部门的协作关系

扩展性示例(加一个小米工厂)​

如果未来要新增 ​小米品牌,只需:


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/) Powered by Discuz! X3.4