接口:类别的设计

    技术2022-05-20  39

    (一)接口的前身(前提):协定

    协定

    比如物件之间的协定,物件XY动作达成了协定,因此我们会呼叫物件X来执行Y动作

     

    根据协定设计类别优点:

    (1)事前的规划将使类别更完善

    (2)较佳的类别版本控制取向,每一个版本都是为一个新的协定

    (3)有助于团队的开发

           i Programming in the Large

          ii 使子系统/团队都遵守相同的协定

    (4)使用起来较有弹性,不管现在或未来,类别X都可以和遵守协定的类别互动

    (二)接口

    接口的涵义:

    a代表用户端与伺服端之间的协定

    b不包含资料及任何实作的程式码

    c用户端(要求服务的物件),透过接口与伺服端沟通

    d伺服端(根据接口协定,提供服务的物件),伺服端中实作接口以满足协定

    (三)优点,为什么要使用接口

    泛用性

    a用户端的程式码将和使用的资料库脱钩

    b允许我们建立泛用的资料存取程式码

    多型(多态)

    (1)当不同的类别均支援相同的操作时

        a只需要学习一种物件模型,就可以使用不同的类别

        b使用起来更方便且具有弹性

    (2)使用接口轻易就可实作多型

    (四)泛用型资料层

    ADO.Net的介面

    ADO.Net为资料类别提供了许多介面

       i IDataReader

       ii IDataAdapter

       iii IDbConnection

       iv IDbCommand

       v IDbDataAdapter

     

    使用ADO.Net的介面来开发泛用型的资料优缺点

    a资料元件可跨不同的资料库使用

    b某些资料元件特有的功能将隐藏在介面里头,仍然可以存取,但将破坏其泛用性

     

    以介面的观点撰写程式

    实作方式:透过物件产生器隐藏真正使用的型别

    Imports db=System.Data.OleDb

     

    Public Class DataAccess

          

           dim dbConn as System.Data.IDbConnection

           dbConn=me.CreateConnection()

           dbConn.Open()

    End Class

     

    Private Function CreateConnection() as System.Data.IDbConnection

           return New db.OleDbConnection("")

    End Function

    Private Function CreateCommand() as System.Data.IDbCommand

           return new db.OleDbCommand(sql,dbConn)

    End Function

     

    转移资料来源

    当资料来源异动时只需要更改物件产生器——泛用,多态

        a在资料元件中的程式码仍然不变

    Private Function CreateConnection() as System.Data.IDbConnection

           return new ss.SqlConnection("")

    End Function

    Private Function CreateCommand() as System.Data.IDbCommand

           return new ss.SqlCommand(sql,dbConn)

    End Function

       b继承

     


    最新回复(0)