对Java接口理解的实例

本文探讨了通过Google学习SSH整合的过程,并通过一个抽象汽车类及其子类宝马汽车BMcar,来阐述面向接口编程与setter注入的概念。利用Spring框架进行组件管理,展示了如何在实际开发中应用这些设计模式。
摘要由CSDN通过智能技术生成

通过google学习了一段时间的ssh整合,现在对整合一个ssh开发环境以及一个注册登陆系统已不是问题,也许是出于本人Java基础的问题,在此发表此文章加深对ssh开发过程中,几个概念的理解:

一是:面向接口编程

二是:设置注入(setter注入)

 

示例程序说明:

 

         本文将引用一个常见的场景(旨在加深自己对接口与实现概念的理解):抽象 【汽车Car】 中有实例

 

【宝马汽车BMcar】,汽车中都有抽象 【播放器Music】 ,播放器又可以播放 【重音乐Strongmusic】,

 

重音乐中又可以有 【使用方法playMusic】 和 【使用方法stopMusic】 , 在抽象 【汽车Car】 和 【播放器Music】

 

中只包含接口。

 

          Car   Music  BMcar  Strongmusic 之间的关系是:BMcar是接口Car的实现类,Strongmusic是接口

 

Music的实现类。

 

代码依次是:

 

Car.java

/**
 * @author Eric Zhang
 */
public interface Car {
	//使用车载播放器方法
	public void useMusicplay();
	public void useMusicstop();
}

 

 

 BMcar.java

 

/**
 * @author Eric Zhang
 * Car的实现类
 * 宝马汽车BMcar
 */
public class BMcar implements Car {

	//面向Music接口编程
	private Music music ;
	public BMcar()
	{
		}
	
	//设值注入所需的setter方法
	public void setMusic(Music music)
	{
		this.music = music;
		}
	@Override
	public void useMusicplay() {
		System.out.println(music.playMusic());
	}
	public void useMusicstop() {
		System.out.println(music.stopMusic());
	}

}

 

Music.java

 

/**
 * @author Eric Zhang
 * 播放器可以有播放方法,暂停方法,下一首,上一首等方法
 */
public interface Music {
	//播放器的播放方法
	public String playMusic();
	public String stopMusic();
}

 

Strongmusic.java

 

/**
 * @author Eric Zhang
 * Music的一个实现类
 * 播放器可以有重音乐播放器,轻音乐播放器等
 * 在此实现,重音乐播放器
 */
public class Strongmusic implements Music 
{
	public Strongmusic()
	{
		}
	
	//实现Music接口的playMusic方法
	@Override
	public String playMusic() 
	{
		return "音乐播放器播放方法";
	}
	
	public String stopMusic()
	{
		return "音乐播放器暂停方法";
	}
	}

 

为了看下测试结果,添加一个测试类

 

BeanTest.java

 

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;

/**
 * @author Eric Zhang
 *
 */
public class BeanTest {
	
	public static void main(String[] args) throws Exception
	{
		ApplicationContext ctx = new FileSystemXmlApplicationContext("/src/applicationContext.xml");
		
		Car p = (Car)ctx.getBean("bmcar");
		
		p.useMusicplay();
		System.out.println();
		p.useMusicstop();
	}
}

 

为了方便管理bean,程序一开始添加了spring的支持,所以要在此配置下bean

 

配置文件applicationContext. xml

 

<?xml version="1.0" encoding="UTF-8"?>
<beans
	xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:p="http://www.springframework.org/schema/p"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">


	<!-- 定义 -->
	<bean id="bmcar" class="BMcar">
		<property name="music">
			<ref local="strongMusic"></ref>
		</property>
	</bean>
	
	<!--定义strongmusic bean-->
	<bean id="strongMusic" class="Strongmusic">
	</bean>
</beans>

 

最后测试结果为:

 

log4j:WARN No appenders could be found for logger (org.springframework.context.support.FileSystemXmlApplicationContext).
log4j:WARN Please initialize the log4j system properly.


音乐播放器播放方法

 

音乐播放器暂停方法

 

 

本文全属本人自学总结,如有不当,请批评指正~!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值