一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - java用兩個例子充分闡述多態(tài)的可拓展性介紹

java用兩個例子充分闡述多態(tài)的可拓展性介紹

2020-05-16 15:58jingxian JAVA教程

下面小編就為大家?guī)硪黄猨ava用兩個例子充分闡述多態(tài)的可拓展性介紹。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

下面我將以兩個例子來充分闡述java中多態(tài)的可拓展性,作為一名優(yōu)秀的程序員,就必須了解程序的可拓展性,非常利于程序后續(xù)的開發(fā)。

第一個例子:

利用電腦的主板來作為例子,就我們所熟悉的電腦的主板,里面是不是有很多模塊,網(wǎng)卡,聲卡,想要用到這些功能,只能當主板運行起來,再給網(wǎng)卡和聲卡供電就可以,但這用軟件語言怎么來實現(xiàn)呢?是不是先要主板跑起來,主板再讓聲卡或者網(wǎng)卡跑起來,但這樣做,拓展性不高讓聲卡和網(wǎng)卡跑起來的操作是重復的,而且有很多模塊也具備這樣的功能,就單純讓主板上的模塊跑起來,這是其一,萬一,那一天,技術更新,新的模塊出現(xiàn)了,是不是又要創(chuàng)建模塊的對象,然后又跑起來,這顯然是不利于開發(fā)的,但是針對這一個問題,主板的廠商和聲卡,網(wǎng)卡的廠商商量后,以后就用一個PCI接口來連接主板和模塊,徹底解決了更新不能用或者重復使用的問題,而這恰恰對應了我們的java中的多態(tài),利用多態(tài),我們能大大提高程序的可拓展性!

具體代碼如下!

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
/*
需求:
電腦運行實例,
電腦運行基于主板。
*/
 
 
interface PCI
{
  public void open();
  public void close();
}
 
class MainBoard
{
  public void run()
  {
    System.out.println("mainboard run ");
  }
  public void usePCI(PCI p)//PCI p = new NetCard()//接口型引用指向自己的子類對象。
  {
    if(p!=null)
    {
      p.open();
      p.close();
      
    }
  }
}
 
 
class NetCard implements PCI
{
  public void open()
  {
    System.out.println("netcard open");
  }
  public void close()
  {
    System.out.println("netcard close");
    method();
  }
  
}
class SoundCard implements PCI
{
  public void open()
  {
    System.out.println("SoundCard open");
  }
  public void close()
  {
    System.out.println("SoundCard close");
  }
}
/*
class MainBoard
{
  public void run()
  {
    System.out.println("mainboard run");
  }
  public void useNetCard(NetCard c)
  {
    c.open();
    c.close();
  }
}
 
class NetCard
{
  public void open()
  {
    System.out.println("netcard open");
  }
  public void close()
  {
    System.out.println("netcard close");
  }
}
*/
 
class DuoTaiDemo5
{
  public static void main(String[] args)
  {
    MainBoard mb = new MainBoard();
    mb.run();
    mb.usePCI(null);
    mb.usePCI(new NetCard());
    mb.usePCI(new SoundCard());
    
  }
}

第二個例子:

利用常用數(shù)據(jù)庫來解釋多態(tài),就我們熟知的數(shù)據(jù)庫而言,目前有兩種數(shù)據(jù)庫的連接模式:JDBC和Hibernatelian連接,使用數(shù)據(jù)庫,都有兩個必不可少的操作,連接和關閉,這時候,使用接口,把這兩種操作封裝起來,需要使用那種連接模式直接更換類名就可以了!

具體代碼如下!

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
/*
需求:數(shù)據(jù)庫的操作。
數(shù)據(jù)是:用戶信息。
1,連接數(shù)據(jù)庫。JDBC Hibernate
2,操作數(shù)據(jù)庫。
  c create r read u update d delete
3,關閉數(shù)據(jù)庫連接。
*/
 
interface UserInfoDao
{
  public void add(User user);
 
  public void delete(User user);
}
 
class UserInfoByJDBC implements UserInofDao
{
 
  public void add(User user)
  {
    1,JDBC連接數(shù)據(jù)庫。;
    2,使用sql添加語句添加數(shù)據(jù)。;
    3,關閉連接。
  }
  public void delete(User user)
  {
    1,JDBC連接數(shù)據(jù)庫。;
    2,使用sql添加語句刪除數(shù)據(jù)。;
    3,關閉連接。
  }
}
 
class UserInfoByHibernate implements UserInfoDao
{
  public void add(User user)
  {
    1,Hibernate連接數(shù)據(jù)庫。;
    2,使用sql添加語句添加數(shù)據(jù)。;
    3,關閉連接。
  }
  public void delete(User user)
  {
    1,Hibernate連接數(shù)據(jù)庫。;
    2,使用sql添加語句刪除數(shù)據(jù)。;
    3,關閉連接。
  }
}
 
class DBOperate
{
  public static void main(String[] args)
  {
    //UserInfoByJDBC ui = new UserInfoByJDBC();
//    UserInfoByHibernate ui = new UserInfoByHibernate();
    UserInfoDao ui = new UserInfoByHibernate();
    ui.add(user);
    ui.delete(user);
  }
}

總結:

1. 這兩個例子都使用了接口來抽象出一些重復的操作,為了讓不同的模塊能直接快捷地使用這些操作,直接使用多態(tài)的向上轉型(看我之前的博客),能后用父類引用去調(diào)用,反正之后無論是技術更新而有了新的模塊或者更換已有模塊,我們都可以使用父類的引用去直接調(diào)用它們共同的操作!

2. 不一定用接口,也可以使用抽象類,但是,使用接口,可拓展性更高,以后有更新,可以直接改動接口,不用去改動抽象類,其次,使用接口,能夠被多繼承!這也是方便的地方。

以上這篇java用兩個例子充分闡述多態(tài)的可拓展性介紹就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持服務器之家。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 99午夜高清在线视频在观看 | 免费日韩| 国产一区二| 精品一久久香蕉国产线看观 | 亚洲 欧美 国产 在线观看 | 免费岛国| 9色视频在线观看 | 午夜亚洲 | a级特黄毛片免费观看 | 国产成人小视频在线观看 | 国产一区二区视频免费 | 拔插拔插8x8x海外华人免费视频 | 女同学高中你下面好紧 | 500第一精品| 3黑人巨大vs北岛玲 3d肉浦团在线观看 3d动漫免费 | 国产日韩精品一区二区 | 免费一级特黄特色大片∵黄 | 娇妻被健身教练挺进小说阅读 | 国产成人精品一区二三区在线观看 | 精品手机在线1卡二卡3卡四卡 | 国产人成77777视频网站 | sihu国产午夜精品一区二区三区 | 精品AV亚洲乱码一区二区 | 97se狠狠狠狠狼亚洲综合网 | 日本红色高清免费观看 | 俄罗斯一级成人毛片 | 性做久久久久久 | waswaswas免费| 甜宠巨肉h文1v1校园 | 性做久久久久久久 | 亚洲精品久久久打桩机 | 俄罗斯极品h在线 | 国产福利一区二区三区四区 | 99精品视频在线观看re | 国产在线成人a | 热99re久久精品国产 | 精品国产免费 | 国产一久久香蕉国产线看观看 | 精品午夜寂寞黄网站在线 | 国产成人精品综合在线观看 | 高清男的插曲女的 欢迎你老狼 |