JAVA设计模式笔记

JAVA设计模式
1.创建模式之工厂模式
工厂模式参考的是现实生产环境的工厂,不知道你是否在深圳的电子厂打工过,如果有这样的经历你就会很好理解。在工厂里是按产品线划分的,在每个产品的流水线上工人们各司其职,将一个个零部件组装起来成为最终产品。就拿我之前呆过的工厂来说,在哪里分了耳机产品线,音响产品线等。不瞎扯了,上代码。
1.1静态工厂模式

interface Product {}
class Headset implements Product {}
class Speakerbox implements Product {}
public class 3nodFactory 
{
   //工厂一般不用实例化,所以定义私有构造方法
   private 3nodFactory(){}
   //定义工厂不同产线的功能方法
   public static Product getHeadset(){}
   public static Product getSpeakerbox(){}
}
//客户端调用的时候根据客户需求获取不同产品
public class Client
{
    public Product getProduct(String type)
    {
        Product product = null;
        if(type.equals("speakerbox"))
        {
            product = 3nodFactory.getSpeakerbox();
        }
        else if(type.equals("headset"))
        {
            product = 3nodFactory.getHeadset();
        }
        return product;
    }
}


----------

静态工厂模式实现简单,但是不便于扩展,如果工厂业务扩展新增加了产品线,那么我们就需要修改现有的工厂类方法,这样就违背了Open close principle(开闭原则),所以就产生了下面的抽象工厂模式。
1.2抽象工厂模式

//定义产品线接口
interface ProductLine { Product get() }
public SpeakerboxFactory implements ProductLine 
{
    public Product get()
    {
       return new Speakerbox();
    }
}
public HeadsetFactory implements ProductLine 
{
    public Product get()
    {
        return new Headset();
    }
}
 public class 3nodFactory
 {
     public Product clientGetProduct(String type)
     {
        Product product = null;
        if(type.equals("speakerbox"))
        {
            product = new SpeakerboxFactory().get();
        }
        else if(type.equals("headset"))
        {
            product = new HeadsetFactory().get();
        }
        return product;
     }
 }


----------
这就是最接近现实工厂的模型了,不同产线负责生产产品,客户找公司下单。公司的扩展也只需要增加新的产品线,不用修改原有代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值