示例1-----主板与配件连接
主板示例:
主板上有许多配件:声卡,显卡,网卡等等
主板上已有特定的接口,如果配件无法满足该接口将无法插入主板
思想:定义一个PCI的接口,让声卡,网卡这些配件想要连接主板,就需要实现PCI接口
然后主板就可以用这个PCI接口来运行配件…(接口型引用指向自己的对象)
接口型引用指向子类对象.提搞功能拓展性
//PCI接口
interface PCI{
void connect(); //PIC连接主板功能
}
//主板类
class MainBoard{
public void run(){
System.out.println("主板运行");
}
public void usePCISlot(PCI parts){ //主板使用PCI插槽..
//PCI parts=new NetCard : PCI接口引用指向配件对象
if(parts!=null){
parts.connect(); //如果part不为空,则part执行连接主板
}
}
}
/*
* 创建一个声卡类,需要实现PCI接口,才能连接主板
*/
class SoundCard implements PCI{
public void connect(){
System.out.println("声卡_连接主板");
}
}
/*
* 创建一个网卡类,想要连接主板,就需要实现PCI接口
*/
class NetCard implements PCI{
public void connect(){
System.out.println("网卡_连接主板");
}
}
/*
*需要什么配件,就创建什么配件的类
* */
public class DEMO {
public static void main(String[] args) {
MainBoard m1=new MainBoard(); //创建一个主板对象
m1.run(); //主板运行
m1.uesPCI(new SoundCard()); //插入声卡
m1.uesPCI(new NetCard()); //插入声卡
}
}
示例2----如果快捷切换连接数据库方式
- 数据库: 连接,修改,删除 三个步骤
- 数据库的连接方式有两种: JDBC / Hibernate
- 目的:快捷切换连接数据库方式
- 思想:连接方式虽然不同,但是修改和删除这两个功能相同
所以可以将这两个功能提升为接口,让这两种连接方式去实现此接口
这样可以直接用接口引用创建子类对象(修改数据库方法接口 x=new JDBC方式//Hibernate方式),
为了以后更方便的切换连接方式去修改数据库
代码演示----
//修改数据库方法-接口
interface useDatabase{
public void add();
public void delete();
}
//JDBC方式连接修改数据库
class JDBC implements useDatabase{
public void add(){
System.out.println("JDBC--修改");
}
public void delete(){
System.out.println("JDBC--删除");
}
}
//Hibernate方式连接修改数据库
class Hibernate implements useDatabase{
public void add(){
System.out.println("Hibernate--修改");
}
public void delete(){
System.out.println("Hibernate--删除");
}
}
public class DEMO {
public static void main(String[] args) {
/*
* 如果后期需要Hibernate连接数据库
* 只需要把new 后面的子类名更改为Hibernate就行了
* 大大提高了切换效率
* */
useDatabase use=new JDBC(); //接口型引用指向子类对象
use.add();
use.delete();
/* JDBC j=new JDBC();
j.add();
j.delete();
* 以上代码可以看出..直接创建JDBC对象,用JDBC方式去连接数据库
* 假如后面需要切换用 Hibernate 去连接数据库
* 则需要重新创建Hibernate 对象连接数据库,重新用新对象一个个调用方法
* 这样做非常的麻烦,
* 这时使用多态方式则方便许多
* */
}
}