小米公司 的简单工厂模式

               

 

  大家众所周知的小米公司在去年火了一把,从数字来看小米公司去年销售额跨过300

 

亿元大关同比增长150% 2014年公司提出将供货4000万部手机。

 

 

  在看小米公司的组织结构的时候,才发现“雷军”当年也可能学习过设计模式哈。为

 

什这么说呢?

 

  因为小米的组织结构总体上来说就只有两层,一个负责研发,一个负责销售。可怜的

 

孩子啊!甚至连自己的工厂都没有。都是靠富士康大哥帮忙加工的。话又说回来,为何

 

说雷军也学习过设计模式呢。有例子为证。

 

<think>我们来实现一个简单的工厂模式,以生产不同类型的手机为例。工厂根据传入的参数(字符串)来创建相应的手机对象。 步骤: 1. 定义一个手机接口(Phone),包含一个方法(如call)。 2. 创建两个具体实现类:华为手机(HuaweiPhone)和小米手机(XiaomiPhone),实现Phone接口。 3. 创建一个手机工厂类(PhoneFactory),提供一个静态方法,根据传入的字符串参数返回对应的手机对象。 4. 在客户端使用工厂类获取手机对象,并调用其方法。 注意:如果传入的参数无效,我们可以返回null或者抛出异常。这里我们返回null并打印错误信息。</think>以下是一个简单的工厂模式实现示例,以生产不同品牌手机为例: ```java // 1. 产品接口 interface Phone { void makeCall(); } // 2. 具体产品实现 class HuaweiPhone implements Phone { @Override public void makeCall() { System.out.println("使用华为手机打电话..."); } } class XiaomiPhone implements Phone { @Override public void makeCall() { System.out.println("使用小米手机打电话..."); } } class IPhone implements Phone { @Override public void makeCall() { System.out.println("使用苹果手机打电话..."); } } // 3. 工厂类 class PhoneFactory { public static Phone createPhone(String brand) { if (brand == null) return null; switch(brand.toLowerCase()) { case "huawei": return new HuaweiPhone(); case "xiaomi": return new XiaomiPhone(); case "apple": return new IPhone(); default: System.out.println("不支持该品牌:" + brand); return null; } } } // 4. 客户端使用 public class FactoryPatternDemo { public static void main(String[] args) { // 通过工厂创建不同品牌手机 Phone huawei = PhoneFactory.createPhone("Huawei"); Phone xiaomi = PhoneFactory.createPhone("Xiaomi"); Phone iphone = PhoneFactory.createPhone("Apple"); // 使用手机功能 if (huawei != null) huawei.makeCall(); if (xiaomi != null) xiaomi.makeCall(); if (iphone != null) iphone.makeCall(); // 测试无效品牌 Phone unknown = PhoneFactory.createPhone("Samsung"); } } /* 输出: 使用华为手机打电话... 使用小米手机打电话... 使用苹果手机打电话... 不支持该品牌:Samsung */ ``` ### 简单工厂模式要点: 1. **产品接口**:定义产品的通用接口(Phone) 2. **具体产品**:实现产品接口的具体类(HuaweiPhone, XiaomiPhone等) 3. **工厂类**:包含静态方法根据输入参数创建具体产品 4. **客户端**:通过工厂获取产品,无需知道具体实现类 ### 设计优势: 1. **解耦**:客户端与具体产品实现分离 2. **可扩展**:新增产品只需添加具体类和修改工厂方法 3. **统一入口**:所有产品通过同一工厂创建 4. **简化客户端**:客户端无需关心对象创建细节
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值