工厂模式

普通工厂:

定义接口:

public interface Gong {
      void add()throws  Exception;
      void delete()throws  Exception;
}

实现类:

1

public class Gong1 implements  Gong {

@Override
    public void add() throws Exception {
       System.out.println("添加");
        
    }

@Override
    public void delete() throws Exception {
        // TODO Auto-generated method stub
        System.out.println("删除");
    }

}

2

public class Gong2 implements  Gong {

@Override
    public void add() throws Exception {
        // TODO Auto-generated method stub
        System.out.println("添加2");
        
    }

@Override
    public void delete() throws Exception {
        // TODO Auto-generated method stub
        System.out.println("删除2");
    }
}

工厂类:

public class GongChang {
    public String type;
    public GongChang(String type){
        this.type =type;
    }
    public   Gong  test(){
        if(type=="gong1"){
            return new Gong1();
        }
        if(type=="gong2"){
            return new Gong2();
        }
        return null;
    }
}

测试类:

public  static void main(String[]args) throws Exception{
        GongChang  gongChang = new GongChang("gong1");
        Gong ter = gongChang.test();
        ter.add();
    }

多个工厂方法模式:

只需要修改工厂类

public class GongChang1 {
    public  Gong  gong1(){
        return  new Gong1();
    }
    public Gong gong2(){
        return  new Gong2();
    }
}

测试类:

//多个工厂模式
        GongChang1  gongChang1 = new GongChang1();
        Gong  gong  =gongChang1.gong1();
        gong.add();

静态工厂方法模式

  修改工厂类:

 public class GongChang2 {
    
    public static Gong  gong1(){
        return  new Gong1();
    }
    public static Gong gong2(){
        return  new Gong2();
    }

}

  测试类:

Gong   gong  =GongChang2.gong1();
        gong.add();

java 设计模式相关推荐

  1. java备忘录模式应用场景_图解Java设计模式之备忘录模式

    图解Java设计模式之备忘录模式 游戏角色状态恢复问题 游戏角色有攻击力和防御力,在大战Boss前保存自身的状态(攻击力和防御力),当大战Boss后攻击力和防御力下降,从备忘录对象恢复到大战前的状态. ...

  2. JAVA 设计模式 模板方法模式

    定义 模板方法模式 (Template Method) 定义了一个操作中的算法的骨架,而将部分步骤的实现在子类中完成. 模板方法模式使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤. 模 ...

  3. Java设计模式之策略模式与状态模式

    一.策略模式定义 定义:策略模式定义了一系列的算法,并将每一个算法封装起来,而且使他们之间可以相互替换,策略模式可以在不影响客户端的情况下发生变化. 好了,定义看看就完了,我知道你很烦看定义. 二.策 ...

  4. JAVA 设计模式 享元模式

    用途 享元模式 (Flyweight) 运用共享技术有效地支持大量细粒度的对象. 享元模式是一种结构型模式. 结构 图-享元模式结构图 Flyweight : 它是所有具体享元类的超类或接口,通过这个 ...

  5. java设计模式 观察者模式_理解java设计模式之观察者模式

    在生活实际中,我们经常会遇到关注一个事物数据变化的情况,例如生活中的温度记录仪,当温度变化时,我们观察它温度变化的曲线,温度记录日志等.对于这一类问题,很接近java设计模式里面的"观察者模 ...

  6. Java设计模式-七大设计原则

    Java设计模式 设计模式七大原则 设计模式的目的 编写软件过程中,程序员面临着来自 耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性 等多方面的挑战,设计模式是为了让程序(软件),具有更好 代码 ...

  7. Java设计模式(备忘录模式-解释器模式-状态模式-策略模式-职责链模式)

    Java设计模式Ⅶ 1.备忘录模式 1.1 备忘录模式概述 1.2 代码理解 2.解释器模式 2.1 解释器模式概述 3.状态模式 3.1 状态模式概述 3.2 代码理解 4.策略模式 4.1 策略模 ...

  8. Java设计模式(访问者模式-迭代器模式-观察者模式-中介者模式)

    Java设计模式Ⅶ 1.访问者模式 1.1 访问者模式概述 1.2 代码理解 2.迭代器模式 2.1 迭代器模式概述 2.2 代码理解 3.观察者模式 3.1 观察者模式概述 3.2 代码理解 4.中 ...

  9. Java设计模式(代理模式-模板方法模式-命令模式)

    Java设计模式Ⅴ 1.代理模式 1.1 代理模式概述 1.2 静态代理 1.2.1 静态代理概述 1.2.2 代码理解 1.3 动态代理之JDK代理 1.3.1 动态代理之JDK代理概述 1.3.2 ...

  10. Java设计模式(装饰者模式-组合模式-外观模式-享元模式)

    Java设计模式Ⅳ 1.装饰者模式 1.1 装饰者模式概述 1.2 代码理解 2.组合模式 2.1 组合模式概述 2.2 代码理解 3.外观模式 3.1 外观模式概述 3.2 代码理解 4.享元模式 ...

最新文章

  1. Python 之 Pandas (二)选择数据
  2. Linux编程简介——动态链接库
  3. 005_Spring的属性注入
  4. 关于sendmail报错“did not issue MAIL/EXPN/VRFY/ETRN during connection to
  5. html自定义滚动条不占位,如何实现滚动条在各浏览器中不占用布局
  6. 命令行 java文本编辑工具 重载 内存区域 栈 堆
  7. Android音视频开发(2)常用的系统播放器MediaPlayer
  8. 利用 PIL模块实现生成动态验证码
  9. java游戏编程源代码_JAVA小游戏编程-源代码
  10. java游戏2333整合包,3dm游戏运行库合集离线安装包
  11. 微软商店下载显示错误,win11无法下载更新的解决方法
  12. 开源自己的一个小android项目(美女撕衣服游戏)
  13. SQL中order by的高级用法
  14. 冰箱10分钟启动一次_冰箱正常多久启动一次
  15. Python Flask 微信验证
  16. 见微智著 - 从一个小例子看Python中的单元测试
  17. 推荐机制 协同过滤和基于内容推荐的区别
  18. github pages不能自动更新
  19. CANN训练营第三季_昇腾CANN算子精讲课_TBE算子Sinh开发笔记_算子开发(二)
  20. python中基础知识(五)

热门文章

  1. opensll zbar交叉编译(君正平台)
  2. 君正T21 SDK编译注意事项
  3. 关于CTC模型的理解
  4. CMMI资质认证是什么?
  5. 织梦进入mysql_织梦phpmyadmin怎么进入
  6. C语言中在常数后面加U、L、F的功能(转)
  7. 乔春洋:网上品牌承诺和设计
  8. 本安型变送器电池701PGNKF
  9. SpringBoot+Mybatis+Vue整合
  10. 软件可靠性分析方法有失效模式影响分析法、严酷度分析法、故障树分析法、事件树分析法、潜在线路分析法