面试积累(简单的工厂模式)

工厂模式我们常见的设计模式之一,看看下面的demo就知道一二了。

比如说“玩手机”这是一个抽象的事件,其中的手机和玩都是抽象的:

public abstract class Phone {
    public abstract void play();
}

但是我们要知道怎么玩,玩什么手机,这才能变成一个具体的事件:

//玩三星手机
public
class SanXing extends Phone{ @Override public void play() { System.out.println("躺着玩三星手机"); } }
//玩苹果手机
public
class ApplePhone extends Phone{ @Override public void play() { System.out.println("走着玩苹果手机"); } }
//玩诺基亚手机
public
class NuoJiYa extends Phone{ @Override public void play() { System.out.println("站着玩诺基亚手机"); } }

但是如果有很多人都要玩手机,我们就需要有一个手机工厂来解决这个问题:

public class PhoneFactory {
    public static Phone getPhone(String thisPhone){
        Phone phone;
        if(thisPhone.equals("三星")){
            phone=new SanXing();
        }else if(thisPhone.equals("苹果")){
            phone=new ApplePhone();
        }else{
            phone=new NuoJiYa();
        }
        return phone;
    }
}

下面我们做一个测试类来测试一下效果:

import java.util.Scanner;
public class Test {
    public static void main(String[] args){
        Scanner input=new Scanner(System.in);
        System.out.println("你想玩什么手机?");
        String thisPhone=input.next();
        Phone pf=PhoneFactory.getPhone(thisPhone);
        pf.play();
    }
}

以上就是一个简单的工厂模式的demo。

 

转载于:https://www.cnblogs.com/Leonar-do/p/5219887.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值