java设计模式(一)---工厂方法模式

既然是工厂模式,为了自己加深理解,例子还是用工厂可以造出来的东西吧,比如手机,当然也可以是其他任何产品。
目前市场主要的手机系统类型为安卓、苹果、微软。可能各自的优缺点不一样
假设优点如下:
苹果:
适合玩游戏
安卓:
适合打电话
微软:
适合发短信

1.简单工厂模式

简单工厂模式是一个由工厂对象决定创建出哪一种产品类的实例,又叫静态工厂方法模式。
我们先把手机功能简化一下,假设只能打电话,发短信,玩游戏,新建一个手机的抽象接口
在这里插入图片描述

Phone

import java.util.*;


public interface Phone {

   void callNumber();
   
   void sendMessage(String message);
   
   void playgames(int gameName);

}

每种手机都要实现基本的功能,下面是苹果的实现类:

import java.util.*;

public class Apple implements Phone {

   public void callNumber() {
      // TODO: implement
   }
   
   
   public void sendMessage(String message) {
      // TODO: implement
   }
   
   
   public void playgames(int gameName) {
      // TODO: implement
   }

}

这样每次使用手机类的时候可以根据手机的用途去new实例,代码会更加容易维护。也会更简洁,项目中很少用,但是可以作为入门了解

2.工厂方法模式

工厂方法模式是简单工厂的进一步抽象和推广,由于工厂方法模式具有多态性,工厂模式方法既保持了简单工厂的优点,同时又克服了它的缺点,简单工厂模式中的工厂类负责创建实例,那么如果有新的机型添加,就要修改工厂类,这样也不利于进一步松耦合。工厂方法模式中核心工厂类不负责所有实例的创建,而是将具体的创建工作交给了子类去完成,这个核心类成为了一个抽象工厂角色。
工厂方法模式设计到一下四个角色的概念:

1. 抽象工厂角色
工厂方法模式的核心,创建产品的类必须实现该接口
2. 具体工厂角色
该角色实现了抽象工厂接口,具体如何创建产品就是在该类中实现
3. 抽象产品角色
所有产品的超类,负责实现产品共性的抽象定义
4. 具体产品角色
该角色实现了抽象产品接口,负责具体不同产品的业务逻辑
承接上面的工作创建抽象工厂角色
工厂
新建创建机型001的具体工厂角色
实现类
抽象产品角色与具体产品角色已经定义过了Phone与Phone001-003

具体使用:
使用

  • 11
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值