Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,038

HOME > .NET Framework > Forum > C# WinApp ช่วยบอกข้อดีข้อเสียของการมี Interface กับไม่มี Interface หน่อยครับ


 

[.NET] C# WinApp ช่วยบอกข้อดีข้อเสียของการมี Interface กับไม่มี Interface หน่อยครับ

 
Topic : 127962



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook


แบบโค้ด บ้านๆ
Code (C#)
01.namespace TORServices.TestDatabase
02.{
03.    public class _database
04.    {
05.       public enum EnumConnectionType{ ODBC, OLEDB, SqlClient }
06.       public  string ConnectionString;
07.       public EnumConnectionType ConnectionType;
08.       public _database(string connStr,EnumConnectionType connType)
09.        {
10.            ConnectionString = connStr; ConnectionType = connType;
11.        }
12.        public  System.Data.DataTable Datatable(string _SQL )
13.        {
14. 
15.            System.Data.DataSet ds = new System.Data.DataSet();
16.            switch (ConnectionType)
17.            {
18.                case EnumConnectionType.ODBC:
19.                    System.Data.Odbc.OdbcConnection conn1 = new System.Data.Odbc.OdbcConnection(ConnectionString);
20.                    conn1.Open();
21.                    System.Data.Odbc.OdbcDataAdapter adapter1 = new System.Data.Odbc.OdbcDataAdapter(_SQL, conn1);
22.                    adapter1.Fill(ds);
23.                    break;
24.                case EnumConnectionType.OLEDB:
25.                    System.Data.OleDb.OleDbConnection conn2 = new System.Data.OleDb.OleDbConnection(ConnectionString);
26.                    conn2.Open();
27.                    System.Data.OleDb.OleDbDataAdapter adapter2 = new System.Data.OleDb.OleDbDataAdapter(_SQL, conn2);
28.                    adapter2.Fill(ds);
29.                    break;
30.                case EnumConnectionType.SqlClient:
31.                    System.Data.SqlClient.SqlConnection conn3 = new System.Data.SqlClient.SqlConnection(ConnectionString);
32.                    conn3.Open();
33.                    System.Data.SqlClient.SqlDataAdapter adapter3 = new System.Data.SqlClient.SqlDataAdapter(_SQL, conn3);
34.                    adapter3.Fill(ds);
35. 
36.                    break;
37.            }
38. 
39.            return ds.Tables[0];
40. 
41.        }
42.        public  System.Data.DataRow Datarow(string sql)
43.        {
44.            System.Data.DataTable dt = Datatable(sql);
45.            return dt.Rows[0];
46.        }
47.    }
48.}


โค้ด แบบมี Interface
Code (C#)
01.namespace TORServices.TestInterface
02.{
03.    public interface iDatabase
04.    {
05.        System.Data.DataRow Datarow(string sql);
06.        System.Data.DataTable Datatable(string sql);
07.    }
08.    public class DataODBC : iDatabase
09.    {
10.        public string ConnectionString;
11.        public DataODBC(string connStr) { ConnectionString = connStr; }
12.        public System.Data.Odbc.OdbcConnection OdbcConnection(string connectionString = "")
13.        {
14.            System.Data.Odbc.OdbcConnection con = new System.Data.Odbc.OdbcConnection(connectionString);
15.            try { con.Open(); return con; }
16.            catch (Exception ex) { throw ex; }
17.        }
18.        public System.Data.DataRow Datarow(string sql, int rowIndax = 0)
19.        {
20.            System.Data.DataTable dt = Datatable(sql);
21.            return (dt != null) ? dt.Rows[0] : null;
22.        }
23.        public System.Data.DataTable Datatable(string sql)
24.        {
25.            try
26.            {
27.                System.Data.DataSet ds = new System.Data.DataSet();
28.                System.Data.Odbc.OdbcDataAdapter adapter1 = new System.Data.Odbc.OdbcDataAdapter(sql, OdbcConnection(ConnectionString));
29.                adapter1.Fill(ds);
30.                return ds.Tables[0];
31.            }
32.            catch { return null; }
33.        }
34.    }
35.    public class DataOleDb : iDatabase
36.    {
37.        public string ConnectionString;
38.        public DataOleDb(string connStr) { ConnectionString = connStr; }
39.        public System.Data.OleDb.OleDbConnection OleDbConnection(string connectionString = "")
40.        {
41.            System.Data.OleDb.OleDbConnection con = new System.Data.OleDb.OleDbConnection(connectionString);
42.            try { con.Open(); return con; }
43.            catch (Exception ex) { throw ex; }
44.        }
45.        public System.Data.DataRow Datarow(string sql, int rowIndax = 0)
46.        {
47.            System.Data.DataTable dt = Datatable(sql);
48.            return (dt != null) ? dt.Rows[0] : null;
49.        }
50.        public System.Data.DataTable Datatable(string sql)
51.        {
52.            try
53.            {
54.                System.Data.DataSet ds = new System.Data.DataSet();
55.                System.Data.OleDb.OleDbDataAdapter adapter1 = new System.Data.OleDb.OleDbDataAdapter(sql, this.OleDbConnection(ConnectionString));
56.                adapter1.Fill(ds);
57.                return ds.Tables[0];
58.            }
59.            catch { return null; }
60.        }
61.    }
62.    public class DataSqlClient : iDatabase
63.    {
64.        public string ConnectionString;
65.        public DataSqlClient(string connStr) { ConnectionString = connStr; }
66.        public System.Data.SqlClient.SqlConnection SqlConnection(string connectionString = "")
67.        {
68.            System.Data.SqlClient.SqlConnection con = new System.Data.SqlClient.SqlConnection(connectionString);
69.            try { con.Open(); return con; }
70.            catch (Exception ex) { throw ex; }
71.        }
72.        System.Data.DataRow Datarow(string sql, int rowIndax = 0)
73.        {
74.            System.Data.DataTable dt = Datatable(sql);
75.            return (dt != null) ? dt.Rows[0] : null;
76.        }
77.        System.Data.DataTable Datatable(string sql)
78.        {
79.            try
80.            {
81.                System.Data.DataSet ds = new System.Data.DataSet();
82.                System.Data.SqlClient.SqlDataAdapter adapter1 = new System.Data.SqlClient.SqlDataAdapter(sql, SqlConnection(ConnectionString));
83.                adapter1.Fill(ds);
84.                return ds.Tables[0];
85.            }
86.            catch { return null; }
87.        }
88.    }
89. 
90. 
91.}


ลองใช้งาน
Code (C#)
01.public class TestDATA
02.{
03.    public void Test()
04.    {
05.        iDatabase idata = new DataOleDb("Conn String ByToR");
06.        System.Data.DataTable dt1 = idata.Datatable("SQL By ToR");
07.        TORServices.TestDatabase._database db = new TestDatabase._database("Conn String ByToR", TestDatabase._database.EnumConnectionType.ODBC);
08.        System.Data.DataTable dt2 = db.Datatable("SQL By ToR");
09. 
10.    }
11.}


ผมอ่านเน้อหาการใช้งาน Interface ทั้งลองทำตัวอย่างดู แล้วก็ยังงง
สรุป Interface มีประโยชน์ยังไงรึครับ
มีไว้เพื่อกำหนดขอบเขตของโค้ดที่ เอามันไปใช้ เฉยๆว่าต้องมี method ไหนบ้างเพื่อให้จ่ายงานให้คนเขียนได้เขียนตรงกันแค่นั้นรึครับ
แล้วถ้าเราเขียนคนเดียว เราควรใช้ Interface ในงานไม๊ครับ



Tag : .NET, Win (Windows App), C#, VS 2012 (.NET 4.x)

Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2017-06-12 16:37:24 By : lamaka.tor View : 1521 Reply : 1
 

 

No. 1



โพสกระทู้ ( 1,458 )
บทความ ( 0 )



สถานะออฟไลน์
Twitter Facebook Blogger

interface เหมาะกับการออกแบบงานในระบบใหญ่ โดยทั่วไป (General developer/ing) ไม่ค่อยใช้กัน มักพบในงานระดับ Enterprise ข้อดีคือ สามารถจัดการและควบคุม รวมไปถึงแก้บัก ได้ง่าย ถ้าโปรแกรมมีขนาดไม่เกินแสนบรรทัด ก็ไม่มีประโยชน์อะไร
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2020-07-09 13:03:36 By : PhrayaDev
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : C# WinApp ช่วยบอกข้อดีข้อเสียของการมี Interface กับไม่มี Interface หน่อยครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)





ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2025 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่