设计模式(三)——工厂模式

工厂模式是23种设计模式,它是定义一个实例化对象的工厂(本质为一个抽象类或接口),然后为每个品种都定义一个工厂(实现实例化对象的工厂),在每个品种工厂中决定创建哪个类的实例。也就是说实例化哪个类的对象交由具体的工厂去决定。

代码如下:

先定义一个鼠标类:

package FactoryPattern;
/**
 * 鼠标
 */
public interface Mouse {
    
    //鼠标点击
    public void click();
    
}

再定义戴尔鼠标和惠普鼠标:

package FactoryPattern;

/**
 * 惠普鼠标
 */
public class HPMouse implements Mouse{

    @Override
    public void click() {
        // TODO Auto-generated method stub
        System.out.println("click HPMouse ...");
    }

}

package FactoryPattern;

/**
 * 戴尔鼠标
 */
public class DellMouse implements Mouse{

    @Override
    public void click() {
        // TODO Auto-generated method stub
        System.out.println("click DellMouse ...");
    }

}

定义创建鼠标的工厂:

package FactoryPattern;

/**
 * 鼠标工厂,生产鼠标
 */
public interface MouseFactory {

    public Mouse createMouse();
    
}

定义戴尔鼠标工厂和惠普鼠标工厂:

package FactoryPattern;
/**
 * 惠普鼠标工厂
 */
public class HPMouseFactory implements MouseFactory{

    @Override
    public Mouse createMouse() {
        // TODO Auto-generated method stub
        return new HPMouse();
    }

}

package FactoryPattern;
/**
 * 戴尔鼠标工厂
 */
public class DellMouseFactory implements MouseFactory{

    @Override
    public Mouse createMouse() {
        // TODO Auto-generated method stub
        return new DellMouse();
    }

}

运行测试类:

package FactoryPattern;

public class RunDemo {

    public static void main(String[] args) {
        
        System.out.println("*****create HPMouse*****");
        MouseFactory hpMouseFactory = new HPMouseFactory();
        Mouse hpMouse = hpMouseFactory.createMouse();
        hpMouse.click();
        System.out.println("************************");
        
        System.out.println("*****create DellMouse*****");
        MouseFactory dellMouseFactory = new DellMouseFactory();
        Mouse dellMouse = dellMouseFactory.createMouse();
        dellMouse.click();
        
    }
    
}

运行结果:

参考文档:设计模式|菜鸟教程,《设计模式之禅》

上一篇:设计模式(二)——简单工厂模式

下一篇:设计模式(四)——抽象工厂模式

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值