接口,工厂

 接口的作用

  接口的作用简单一点就是:接口是用来标记类的,不同的类属于不同的接口(通过向上转型),管理接口比管理各种各样的类方便多了,接口体现了抽象的观点,什么是抽象?抽象就是"抽去像的部分"。

  使用接口解决问题

  问题:现在我们要写个连接数据库的类给用户使用,有两个函数:一个返回Connection对象,另一个是关闭数据库,close(),一般的解决方法是:给每个数据库写一个类,再根据用户使用的数据库决定使用具体的类。

  好的,我们看看这样有什么不好之处:

  (1).首先每个类都要有重复的代码,造成代码的膨胀;

  (2).其次最重要的是我们并不知道用户使用什么数据库,可能是Oracle,可能是mysql,也可能是sqlserver等,这个问题很难解决。

  解决方案:

  首先我们定义接口:

  public interface DataBase

  {

  java.sql.Connection openDB(String url,String user,String password);

  void close();

  }

  我们定义了两个方法,openDB返回Connection对象,close()关闭数据库;

  具体的实现在实现DataBase接口的类中;

  下面看看实现:

  import java.sql.*;

  public class Mysql implements DataBase

  {

  private String url=”jdbc:mysql:localhost:3306/test”;

  private String user=”root”;

  private String password=””;

  private Connection conn;

  public Connection openDB(url,user,password)

  {

  //连接数据库的代码

  }

  public void close()

  {

  //关闭数据库

  }

  }

  类mysql实现了DataBase接口,下面还有实现了DataBase接口的oraclesql等类;

  这些类都归于DataBase接口了,如何在应用程序中使用呢?

  我们要定义DataBase对象 myDB,通过myDB来操纵数据库,可以不要分清是哪个类了。

  另外的问题:Java中不许我们实例化接口,如DataBase myDB=new DataBase();

  我们只能myDB=new Mysql()或者myDB=new Oracle()。这样我们还必须指定实例化哪个对象,好像前面的努力都白费了啊!!那怎么办呢,我们需要一个工厂:

  public class DBFactory

  {

  public static DataBase Connection getConn()

  {

  Return(new Mysql());

  }

  }

  实例化的代码变成:myDB=DBFactory.getConn();

  整个过程中接口不负责任何具体操作,其他的程序要连接数据库的话,只需要构造一个DB对象就OK,而不管工厂类如何变化。这就是接口的意义----抽象。
创建型模式之简单工厂模式——接口和抽象类 一张图讲明白简单工厂 阅读详情

相关推荐

.NET接口与工厂模式深入开发指南

本文还有配套的精品资源,点击获取 简介:在.NET开发中,接口、继承和工厂模式是面向对象编程的关键概念。本课程通过实例深入探讨接口定义、继承机制以及工厂模式的实现。我们将学习如何在C#中使用 interface 关键字声明接口,如何通过冒号和基类名称实现继承,以及如何使用工厂模式封装对象创建过程,提高代码的灵活性和扩展性。通过多态性的应用,结合接口和继承,我们...

weixin_42146230的博客 1254

浅谈api工厂:前端Paas中台

这里,你一定要记住一个概念“专属域名”,在后面的章节中,有很多地方会使用到这个“专属域名“。因为api接口地址就与这个专属域名有关,默认生成的是32个字符,你可以修改为自己的较短,易记的个性化专属域名。以上是官方的原话,用我的理解来说,就是中台帮你写好了接口,包括客户端各种模块情况下需要对接的接口以及做后台管理需要对接的接口,都给你封装好并提供了完整的接口文档。注册后,你就可以用你注册的手机号登录后台了,以后你将可以通过该后台管理你的数据,当然你。一个只懂对接口的前端也能开发属于自己的项。...

qq_34761385的博客 6486

CANoe信号传输故障排查指南

本文提供了全面的CANoe信号传输故障排查指南,涵盖从硬件连接、通道配置到软件脚本与数据库加载的全链路诊断。针对常见的通道指示灯不亮、信号无法发送及ECU握手失败等问题,给出了基于CANoe工具和CAPL脚本的详细排查步骤与解决方案,帮助工程师系统化定位并解决实车测试中的通信故障。

ice55的博客 258

接口以及工厂模式

1.接口的定义与使用 1.1接口的定义   定义接口使用关键字interface,接口就是抽象方法与全局常量的集合(纯粹版的抽象类) interface IMyIterface{ //全局常量 public static final String MSG="test"; //抽象方法 public abstract void test(){ }   为什么说接口是纯粹版的抽象类?抽象类...

hyb2049988346的博客 559

阿里云Ubuntu部署Steam饥荒联机版服务器:从零到多人联机的完整指南

本文详细介绍了在阿里云Ubuntu系统上部署Steam饥荒联机版服务器的完整流程,包括环境准备、SteamCMD安装、服务端配置、Mod管理及后台运行技巧。通过2核4GB的ECS实例配置和端口设置,实现5人流畅联机体验,适合游戏爱好者快速搭建专属服务器。

weixin_29229261的博客 1024

DeepSeek + 番茄小说:AI辅助小说开发最全指南

DeepSeek与番茄小说合作推出AI辅助小说创作系统,通过DeepSeek的文本生成能力(包括情节构建、角色塑造等)结合番茄小说的市场数据,为作者提供从创意到发布的全流程支持。系统包含智能创意生成器、角色设计、章节自动生成等核心模块,采用数据驱动优化策略,支持128K长文本处理和多风格模仿。开发架构采用Python+FastAPI技术栈,提供分层审核机制确保质量。该系统可帮助作者突破创作瓶颈,提升效率,同时提供订阅制、内容分成等多元变现模式。需注意版权问题和原创性保证。

weixin_41445009的博客 1678

(三)Spring关键接口之工厂相关接口

目录 1.FactoryBean接口 2.InitializingBean接口 3.BeanFactoryAware接口 4.BeanPostProcessor接口 5.BeanFactoryPostProcessor接口及其子类接口 5.1 BeanFactoryPostProcessor接口 5.2 BeanDefinitionRegistryPostProcessor接口 5.3 接口的调用方法链 6.AutowireCapableBeanFactory接口 7.SmartInit

Armyyyyy丶的博客 586

多出来的那一截:Java 堆外内存 OOM 的来源分账、分流排查与治理解析

Java进程的RES常比-Xmx多出一截,堆却平稳。本文把堆外内存拆成直接缓冲区、Unsafe、JNI本地库、线程栈、元空间与文件映射六类,用JDK 8与17的六组实验对照RSS、NMT、BufferPool三本账:clear()不释放内存;MaxDirectMemorySize默认约等于堆上限且只管直接缓冲区;禁用显式GC会让申请线程退避半秒后失败;未关闭的Deflater零GC下让RSS涨1GB;Netty池内泄漏GC救不回。最后给出定性、对账、定位的排查路线与预算、编码、监控三层治理。

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 14万+

api工厂接口和postman操作和小程序的接口封装

一、api工厂接口说明 1、api工厂官方地址:https://www.it120.cc/ 2、api工厂前端接口地址:https://api.it120.cc/doc.html#/home 3、api工厂后台管理登录地址(若没有提前注册):https://admin.it120.cc/#/ 通过postman:专业接口测试工具来测试 postman操作事项: 公共域名+专有域名 公共域名:https://api.it120.cc 专属域名域名:这个创建自己的专属域名。 地址:https://api.it1

huashui996521的博客 2733

AF自动对焦 CDAF PDAF

前言 主流的AF: CDAF, PDAF, laser assist AF(这个只是辅助,在微距或者拍摄纹理不明显的场景下好用)。 1.cdaf原理 CDAF的大致原理就是检测图像锐度或者等价于锐度的参数,不断推动马达寻找最清晰点实现合焦或者对焦。如下图: 缺点:对焦准确,速度慢,由于camera帧率,cpu处理速度,马达反映时间问题不能实时对焦运动物体。 2.pdaf原理 计算相位差,将相位差转换为相位差和af code的关系....

camerall 1万+

在 Fiori Elements Object Page 的表格中用 UI.Hidden 隐藏列:语义、边界与落地实践全解析

摘要: Fiori Elements的Object Page表格中,UI.Hidden注解支持静态和动态隐藏列。动态隐藏分为两种:基于父实体属性隐藏整列,或基于子实体属性按行隐藏单元格。关键约束包括:支持服务端操作的列禁止使用动态隐藏,否则会导致UX不一致。ABAP CDS不支持路径式UI.Hidden,需改用XML注解。该功能需与UI.Importance、个性化等机制明确区分,避免混淆。对于可能参与排序/过滤的列,建议仅使用静态隐藏。实际应用中需注意注解位置(整列或单元格级)和业务场景的匹配。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 205

设计模式学习之简单工厂

简单工厂不是一个标准的设计模式,但是非常简单又好用,我们先介绍简单工厂。

哆啦A瑶的博客 959

3 ATK2(AUTOSAR OS)代码移植-目标硬件及编译环境简介

该部分介绍ATK2代码移植的目标硬件以及编译环境

xiaoduanduansad的博客 719

Java之接口与工厂

在这我们需要对工厂方法设计模式尽心一个学习,这对框架的创建是十分有力的。 其实我们学习的接口呢,是实现多重继承的一种途径,而你去生成遵循某个接口的对象的典型方式就是工厂方法设计模式。通过这种方式,我们的代码将完全与接口的实现分离,这是十分有利于我们将某个实现替换为另一个实现。 我们在工厂对象上调用的是创建方法,而该工厂对象的将生成接口的某个实现的对象。 话不多时,直接那代码来看: package ...

qq_41026809的博客 529

我的世界进阶模组开发教程——制作机械动力附属模组

摘要: Create是Minecraft的机械动力模组,其代码结构分为多个关键模块: 数据生成系统:通过CreateRecipeProvider基类实现配方自动化生成,支持多步骤序列化装配配方(SequencedAssemblyRecipeGen),采用建造者模式链式调用; 注册管理:CreateRegistrate扩展了Registrate库,统一管理方块、流体、实体等注册,集成标签页分类和工具提示定制; 伤害系统:DamageTypeTagGen为机械伤害(如钻头、风扇火焰)定义原版兼容的标签; 客户端

qq_24992377的博客 2083

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

java 接口工厂_Java 接口工厂案例

接口是实现多重继承的途径,而生成遵循某个接口的对象的典型方式就是工厂方法设计模式。这与直接调用构造器不同,我们在工厂对象上调用的是创建方法,而该工厂对象将生成接口的某个实现的对象。代码:interface Cycle {void name();}interface CycleFactory {Cycle getCycle();}class Unicycle implements Cycle {@O...

weixin_39609051的博客 249

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

接口与工厂模式

接口的定义与使用 接口优先原则:在一个操作即可使用抽象类又可使用接口的时候,优先考虑使用接口。 定义(JDK8以前):接口就是抽象方法与全局常量的结合(纯粹版的抽象类)interface 接口命名:使用I开头 子类的命名规范:接口名为IMyInterFace,子类实现此接口命名为MyInterfaceImp1 父接口间的相互转换:前提是两个父接口拥有共同的实现子类。 接口中只允许public权限...

weixin_43688527的博客 623

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

简单工厂-基于接口的编程

昨天,老师给我们展示了简单工厂的设计模式。今天练习了一遍,体会了一下面向接口的编程的强大之处。今天总结一下,加深一下理解。 因为初学C#.net编程,之前做的几个例子都是使用的简单三层架构。而简单三层有个问题,业务操作类与数据操作类是强耦合关系,数据操作类的变动,会直接影响到业务操作类的正常运行,所以为了解决这个问题,需要解耦。怎么解耦,引入接口和工厂类,来将业务操作类与数据操作类的关...

a18515328163的博客 155

C#==>接口 及 基于接口的工厂模型

1,声明接口在语法上与声明抽象类完全相同,但不允许提供接口中任何成员的执行方式。 2,不能实例化接口,他只能包含其成员的签名。 3,接口不能有构造函数或字段。但可以有属性, 4,因为.NET的接口通常是公共契约,例如要与VB兼容,而VB并不支持运算符重载,所以C#中的接口定义也不允许包含运算符。 5,接口定义的成员上不允许声明运算符。 6,接口成员总是公共的

人在天涯,不倦求索。。 2417

java接口和工厂的学习

这几天java作业中出现了关于接口和工厂的,百度了一下工厂,下面有接口和工厂的文章链接(因为没有问过博主,所以大家去看原文吧),并作出自己的理解: 工厂原文出处:https://blog.youkuaiyun.com/llussize/article/details/80276627 接口原文出处:http://www.weixueyuan.net/view/6009.html 然后是自己的理解: 1...

include_645829461的博客 306

三层,接口,简单工厂,抽象工厂

我们做项目的时候通常用以下几种架构 一.依赖三层进行开发 项目中有Shop.SqlServerDAL,Shop.BLL这俩个类库,Shop.SqlServerDAL有这样一个类CustomerDAL.cs类,在BLL层调用DAL层如下 SqlServerDAL.CustomerDAL dal = new SqlServerDAL.CustomerDAL(); publ

MsdnWoo的博客 1433

Spring Bean工厂的接口

1、BeanFactory接口 Spring中的BeanFactory是bean工厂的顶级接口,它定义了bean工厂的基本职能。具有方法如下: 2、AutowireCapableBeanFactory接口 AutowireCapableBeanFactory接口是BeanFactory的子接口,它扩展了BeanFactory的功能,使bean工厂对bean具有自动注入的功能。在这个...

Cloud-Future的博客 701

java工厂到接口_Java基础——接口&简单工厂

声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权;凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记。一.接口1.接口只做规范和声明不做实现;2.java中类只能单一继承,不能多继承,但是接口可以多继承;3.接口不要从功能上去看,不要觉得接口会带来功能上得提升,只能从设计角度去看待,从长远角度去看待,给我们带来得是规范,让我们更好得面向父类编程,这就是接口得魅力...

weixin_28987001的博客 161

接口的工厂模式实现

//实现接口中的工厂模式 public class ImplementFactory187 { public static void main(String []args) { torun(new imple1factory()); torun(new imple2factory()); } public static void torun(se...

qq_46028946的博客 348

反射实现接口工厂

接口工厂模式: 定义接口用Interface,且接口中只能包含属性、方法和索引器,而且成员上不能有任何修饰符即使是public也不行,因为接口总是公开的。 首先我们定义一个汽车接口 public interface ICar { void run(); void stop(); //void e...

deluo7944的博客 121

接口与工厂

Thinking in Java 第四版练习18 创建一个Cycle接口,及其Unicycle、Bicycle、Tricycle实现。对每种类型的Cycle都创建工厂,然后编写代码使用这些工厂。

技术搬用工 1424
上一篇: 为什么用Spring来管理Hibernate?
下一篇: flex 多级窗口互调连接oracle动态管理生成动态datagrid
yangactive
博客等级 码龄15年 15粉丝 31原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值