1、什么是耦合:简单的在开发一个类时,必须紧紧依赖于另一个类。或者一个类修改以后,另一个也必须修改等情况。
2、什么是解耦:通过一定的设计,使一个类并不紧紧依赖一另一个类,这样在类设计时或修改时,不会影响到其它类。
观察所有动物吃东西的情况,如果吃的东西为“植物”,则显示为食草动物如鱼类,“肉”,则为“食肉动物”,如虎类。
常规开发:
1、设计鱼类。
2、动物园类。
步骤:必须在鱼类设计完成以后才能开发动物园类。最大的坏处,鱼类和动物园类高耦合,不便于切换算法,也不能协同开发。
通过接口来解除高耦合。使类与类之间的开发互不依赖。
示例:
1、根据“观察所有动物吃东西的情况”,定义一个接口,如“IAnimal”--关注有什么行为,即eat();
2、根据IAnimal接口开发出业务类Zoo
3、具体实现类任何时候开发都可以。
关键:
1、多态大多数是这样使用的:
父类 a = new 子类();
接口 b = new 实现类();
2、还有一种,是属于类型转化。
z.animal = fish;//fish是Fish类型,也可以是IAnimal类型。
分析:fish由Fish类型转化为了IAniaml类型。
实现原理:利用接口指定要调用的方法,然后在业务类中只使用这些规定的方法,于是实现了业务类与实现类的分离。
说明:如果事先可以设计出要使用的方法,则可以先设计接口再开发具体类;如果不能,则也无法使用接口。
但是大多数情况下,对于核心业务类的核心方法,都是可以确定的,所以在实际开发中,大量了使用接口。
说明2:/**
* 参数匹配原则
* 1、类型本身 2、类型所实现的接口 3、类型所继承的父类
*/
分享到:
相关推荐
抽象接口定义了客户端使用的高级接口,它通常包含一个实现接口的引用,以便调用实现部分的功能。在Java代码中,这可能表现为一个类或接口,例如`BridgeInterface`,声明了一些与业务逻辑相关的操作。 2. 具体抽象...
总而言之,Java高级语言编程进阶版是一本针对具有一定编程基础的Java爱好者的书籍,它覆盖了从泛型到多线程,再到国际化和MVC架构的多个高级主题,目标是帮助程序员提升他们的Java编程技能到一个新的层次。
【Java桌面程序开发框架Viewa】是一个用于构建Java桌面应用的框架,主要针对开发者提供一套高效、易用的工具集,使得在Java平台上创建桌面应用程序变得更加便捷。此框架的源码是学习Java GUI编程和软件架构设计的...
5. **Java Message Service (JMS)**:JMS是Java中处理异步通信的标准接口,常用于构建解耦的应用系统。通过消息队列,可以实现系统的可靠消息传递和任务调度。 6. **Web服务**:Java服务器高级编程还会涵盖SOAP...
在Java编程中,反射是一种强大的工具,它允许我们在运行时检查和操作类、接口、字段和方法。在给定的标题“java由类的完整路径利用反射给接口注入对象”中,我们关注的核心知识点是使用反射来动态地创建对象并将其...
6. **学习路径**:根据文件结构,这个Day01的课程可能涵盖了接口的基础知识,接下来的学习可能会涉及更复杂的接口设计模式,如工厂方法、策略模式等,以及如何在实际项目中应用接口设计。 7. **学习建议**:首先,...
本项目旨在提供一个简洁而有效的MVC(Model-View-Controller)架构示例,帮助开发者理解如何在Java Web开发中组织和管理代码。 **Maven** 是Apache软件基金会的一个项目,主要用于管理Java项目的构建、报告和依赖...
在Java编程语言中,接口(Interface)是一种定义行为规范的抽象类型,它允许类实现多个接口,从而实现多继承。...在这个简单的示例中,虽然没有涉及这些高级概念,但它们是Java开发中常见的最佳实践。
通过以上总结,我们可以看到,Java 作为一种广泛应用的编程语言,在高级程序设计中涉及到了多线程管理、数据库访问、布局管理、配置文件处理以及设计模式等多个方面的重要知识点。这些知识点对于理解和掌握 Java ...
- 编写第一个Java程序:“Hello World”示例,用于验证Java环境是否搭建成功。 #### 第二章:简单Java程序 - 通过编写简单的Java程序来熟悉开发流程和基本语法结构。 #### 第三章:Java基础程序设计 - **Java...
3. `TestIoC.java`:这是一个关于IoC容器的测试类,它可能使用Spring的ApplicationContext接口来加载bean.xml配置,然后通过容器获取并测试bean实例。 4. `ServiceBean.java`:这可能是一个通用的服务bean,用于...
它将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录,使得数据库操作更为简单。 整合SpringMVC和MyBatis的过程主要包括以下几个步骤: 1. **配置SpringMVC**:创建`springmvc-...
【Java教程\TSG-J2 J2EE高级课程和演示代码】是一套全面深入的Java企业级应用开发教程,特别适合已经掌握了Java基础并希望进一步提升J2EE技能的开发者。这个教程涵盖了J2EE平台上的诸多核心技术和高级概念,通过实际...
- 自动配置:根据项目依赖自动配置相关组件,如数据源、缓存、Web服务器等。 - Actuator:提供监控和健康检查功能,便于微服务管理和调试。 - Starter POMs:简化Maven依赖管理,只需要引入特定的Starter,就能...
5. **接口**:Java接口在源码中扮演重要角色,它们用于定义行为规范,实现解耦。你可以学习如何定义和实现接口,以及接口与类的交互。 6. **异常处理**:源码中会有异常处理的示例,包括try-catch-finally语句块和...
"si-phxjug"可能包含更复杂的设计模式和高级Java特性,如多线程、网络编程或者使用现代Java框架如Spring来实现服务接口。这个项目可能是一个实际问题的解决方案,展示了如何在大型项目中有效地使用接口来组织和管理...
《Think in Java》是Bruce Eckel的经典编程教材,它深入浅出地讲解了Java语言的基础概念和高级特性。源码整理则为读者提供了实践和学习的机会,帮助理解书中的示例和理论。以下是对《Think in Java》源码中一些重要...