接口和简单工厂设计模式

摘要:
工厂设计模式是创造性设计模式之一。简单的工厂设计模式只是工厂设计模式的简化版本。简单的工厂设计模式通过设计接口和在此接口上实现的多个实现类来创建工厂类。工厂类应用于创建可在变量中传递的实现类的静态方法。在该方法中,通过判断传入变量的不同值来隐式创建相应的接口实现类。

声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权;凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记。

接口:

接口就是纯抽象类的演变,实现接口的类都必须实现接口的的方法。接口里全部都是方法的声明,没有方法的实现。
接口里的方法都是public修饰的,就算不写public关键字,也是默认public的,里面的申请的属性 全部都是public 静态常量,接口里没有构造器,静态块和实例块。
例如:

image

在c这种面向对象的编程语言中也有抽象类,但是要求的不严格,c要求的规范的确是一个类继承一个普通类和多个抽象类,但是很多人不遵守,一个类继承多个普通类,java看到其中的缺陷,并将要求变的严格,一个类只能继承一个普通类,但是可以实现多个接口。
在jdk1.7之后,接口里可以申请public静态方法了。
一个类可以实现很多个接口。接口和接口之间可以多继承,例如接口A继承接口B和C,一个类D实现了A接口,那么相当于D类同时实现了ABC三个接口。
最重要的是凯哥赠语:凯哥赠语:只要申请了接口,就应该用接口编程!
工厂设计模式属于创建型设计模式之一,简单工厂设计模式仅仅是工厂设计模式的一个缩减版。
简单工厂设计模式通过设计一个接口,和多个实现于此接口的实现类,再创建一个工厂类,工厂类申请一个可传入变量的创建实现类的静态方法,方法里通过判断传入的变量值的不同,从而隐藏式的创建出对应的接口实现类。通过new接口的方式将接口的实现类传到接口类型的实例中。
实现代码例子:(接口) A = (工厂类).(创建实现类方法)(变量);
我对简单工厂好处的理解,简单工厂通过传入工厂类里创建接口实现类方法的变量就可以隐藏的创建接口实现类,不仅仅是功能的安全系数提高了,而且对于以后进行代码的更改变动也提供了方便,只需要进行少部分的代码和变量参数的变动。

具体代码如下

image

image

image

image

image

免责声明:文章转载自《接口和简单工厂设计模式》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇js原型和原型链(用代码理解代码)树莓派wiringPi经常使用的函数介绍下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

API的理解

API(Application Programming Interface,应用程序编程接口:是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。 通俗的讲API就是接口,就是通道,负责一个程序和其他软件的沟通,本质是预先定义的函数。 API通常是以Http的形式提供,它隐...

DOM笔记(一):HTMLDocument接口

操作HTML文档的第一步就是获取对文档元素的引用,每一个元素在DOM中就是一个节点,所有的元素在DOM中构成一个节点树。 用于获取元素节点定义的方法定义于HTMLDocument接口,window.document方法用于实现该接口,其定义的常用方法和属性如下: 属性或方法 返回值类型 说明 [getter] 任何类型 根据元素的name属性获取...

Mac地址表、STP与RSTP原理

Mac地址:交换机转发二层帧的数据库 结构:VLAN+来源+Mac地址+接口 表建立:交换机会把数据帧进入接口的源Mac记录,一个接口可以记录多个Mac。 表老化:表项中的每个记录计时器舒心都有计时器(300s),计数器启动——当该记录没有数据帧查询时就会倒计时,一旦有数据帧查询 端口安全:1.攻击                     Mac地址洪泛攻...

Java基础知识提要

1、简述Java的基本历史 java起源于SUN公司的一个GREEN的项目,其原先目的是:为家用消费电子产品发送一个信息的分布式代码系统,通过发送信息控制电视机、冰箱等 2、简单写出Java特点,写出5个以上,越多越好 简单的、面向对象的、分布式的、安全的、稳定的、与平台无关的、可解释的、多线的、动态的语言。 3、什么是Java? JAVA:一种编程...

API及接口清单

模块 应用场景 类型 API/接口 AP 付款核销 API ap_pay_invoice_pkg.ap_pay_invoice AP 应付发票审批 API ap_approval_pkg.approval AP 预付款核销 API ap_prepay_pkg.apply_prepay_fr_prepay AP 创建应付发票...

11springboot的MVC配置原理

springboot的MVC配置原理 springboot现在是实现了mvc的自动配置,但是如果要修改/添加mvc的配置呢,比如上一篇的thymeleaf模板引擎,就自动配置了视图解析器,添加了前缀:classpath:/templates/和后缀:.html 。这样 访问方法的映射路径时,就不用添加文件的路径和后缀名,但是如果访问的文件不在 tmplat...