JAVA设计模式---工厂模式理解

前言

多年的java经验,说句实话并没有刻意的去看设计模式相关的东西,但是设计模式相关的应用就在实际应用中,比如hibernate中connection的获取,根据不同的properties的配置内容,不同的参数,从而获取不同的connection,并且调用connection相关方法对DB进行操作。这就是一个工厂模式的场景。看了很多工厂模式的帖子,大部分都是奔驰,宝马[笑CRY]。不讲太多,只说一下自己对于工厂模式的理解,或许只是一小部分,毕竟没有应用到实处,欢迎拍砖。

工厂模式的特点

1-多态的表现,解耦的表现
2-便于维护,增强代码逻辑的可扩展性,统一了逻辑,减少了逻辑应用代码中new实例的操作
3-“工厂生产的具体产品”维护添加时,需要对工厂模式设计做出相应的逻辑变更

案例阐述

标准为:不同键盘厂商的click,共同的操作为click,区别为不同的键盘品牌,在实际逻辑应用中,需要new不同的键盘实例,在更新维护中更是需要维护相应的逻辑。本文以魔力鸭和cherry两种键盘品牌,同一种click操作来简单阐述博主对于工厂模式的理解

案例代码

//共同的产品,键盘接口
public interface Keyboard {
    //共同的点击操作click
    public void click();
}


//cherry键盘实现类
public class CheeryKeyboard implements Keyboard {
    //cherry键盘实现方法
    @Override
    public void click() {
        System.out.println("this is cheery keyboard click...");
    }
}

//魔力鸭实现类
public class DuckyKeyboard implements Keyboard {
    @Override
    public void click() {
        System.out.println("this is ducky keyboard click...");
    }
}

//简单的工厂类实现
public class KeyBoardFactory {
    public static Keyboard KeyboardInstance(String brandName){
        if(brandName.equals("cheery")){   //获取cheery键盘
            CheeryKeyboard cheeryKeyboard = new CheeryKeyboard();
            return cheeryKeyboard;
        }else if(brandName.equals("ducky")){
            DuckyKeyboard duckyKeyboard = new DuckyKeyboard();
            return duckyKeyboard;
        }
        return null;
    }
    public static void main(String[] args) {
        Keyboard cheerykey = KeyBoardFactory.KeyboardInstance("cheery");
        cheerykey.click();
    }
}

应用场景

统一的标准,不同的具体实现,公用模块性强,需要维护性强的类

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值