惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

www.infosecurity-magazine.com
www.infosecurity-magazine.com
V
V2EX
博客园 - 【当耐特】
爱范儿
爱范儿
B
Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
MyScale Blog
MyScale Blog
月光博客
月光博客
博客园_首页
G
Google Developers Blog
Recent Announcements
Recent Announcements
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
D
Docker
aimingoo的专栏
aimingoo的专栏
博客园 - Franky
有赞技术团队
有赞技术团队
I
InfoQ
小众软件
小众软件
云风的 BLOG
云风的 BLOG
The GitHub Blog
The GitHub Blog
H
Help Net Security
The Register - Security
The Register - Security
U
Unit 42
P
Palo Alto Networks Blog
N
News and Events Feed by Topic
酷 壳 – CoolShell
酷 壳 – CoolShell
C
CERT Recently Published Vulnerability Notes
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Simon Willison's Weblog
Simon Willison's Weblog
Security Latest
Security Latest
Scott Helme
Scott Helme
罗磊的独立博客
B
Blog RSS Feed
C
Check Point Blog
H
Heimdal Security Blog
T
Threatpost
V
Visual Studio Blog
V
Vulnerabilities – Threatpost
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Project Zero
Project Zero
Security Archives - TechRepublic
Security Archives - TechRepublic
S
Security Affairs
S
Schneier on Security
Apple Machine Learning Research
Apple Machine Learning Research
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
N
Netflix TechBlog - Medium
Attack and Defense Labs
Attack and Defense Labs
L
Lohrmann on Cybersecurity
D
DataBreaches.Net

博客园 - 洪虎

Windows环境下安装Python 建立批命令快速修改本机IP地址 网络经典命令 - 洪虎 - 博客园 “指定域的名称或安全标识SID与该域的信任信息不一致”的解决方法 建立主DNS区域和辅助DNS区域的最佳实践 无人职守安装 XP 电脑黑客基本技术和入侵的关键字以及电脑攻防应用 建立一个可修改Windows域用户密码的web页面 修复SQL2000中损坏的表 将Excel转换为CSV的VBA代码 - 洪虎 - 博客园 用命令检查电脑是否被安装木马 DateTime.ToString 方法 - 洪虎 - 博客园 在C#中自定义异常 - 洪虎 - 博客园 使用DataDynamics.ActiveReports 创建子报表 错误的SQL脚本,错误消息 4104 - 洪虎 - 博客园 适配器模式 如何在 Reporting Services 开发基于用户权限的报表呢? 委托模式 使用反射检查程序集,实现自动更新
接口模型
洪虎 · 2006-10-11 · via 博客园 - 洪虎

下面是我学习接口模式的摘抄,和一些心得。

按照接口的定义方法,他是一些方法和字段的一个集合。通过使用接口可以简化编码,提高效率。下面就看一个例子从中体会一下使用接口的好处。

 1using System;
 2using System.Collections.Generic;
 3using System.Text;
 4
 5namespace Lesson10
 6{
 7    // 定义一个表示所有物品的接口
 8    // 这个接口有一个字段表示这个物品的名字
 9    // 有一个方法用来显示这个物品的信息
10
11    public interface Objects
12    {
13        string Name get;}
14        void ShowInf();
15    }

16
17    // 定义一个桌子类
18    class Table : Objects
19    {
20        private string name;
21
22        public Table(string name)
23        {
24            this.name = name;
25        }

26
27        public string Name
28        {
29            get return name; }
30        }

31
32        public void ShowInf()
33        {
34            Console.WriteLine("这是一个" + name + " 长:120  宽:60  高:90");
35        }

36    }

37
38    // 定义一个键盘类
39    class Keyboard : Objects
40    {
41        private string name;
42
43        public Keyboard(string name)
44        {
45            this.name = name;
46        }

47
48        public string Name
49        {
50            get return name; }
51        }

52
53        public void ShowInf()
54        {
55            Console.WriteLine("这是一个" + name + " 长:60  宽:15  厚:3");
56        }

57    }

58
59    class Program
60    {
61        static void Main(string[] args)
62        {
63            Objects test = new Table("电脑台");
64
65            CustMethod(test);                           // 注意这里传入的是一个Objects接口的一个实例
66
67            CustMethod(new Keyboard("标准键盘"));       // 注意这里传入的是一个KeyBoard类的一个对象实例
68
69            Console.ReadKey();
70        }

71
72        // 注意这里传递的是一个接口的实例,而不是一个普通的对象
73        // 这个方法可以看作是对所有实现这个接口的对象按照接口所定义的属性或方法,来操作这些对象的通用方法
74        // 这样做可以减少代码编写工作量,把相同的操作。或对具有相同方法或属性的一批对象实现一个通用的方法
75        public static void CustMethod(Objects objects)
76        {
77            Console.WriteLine(objects.Name);
78            objects.ShowInf();
79        }

80    }

81
82}

83

通过这段代码可以看到,如果对某一类具有相同属性或方法的对象进行操作时,可以对这些对象进行一些统一的操作。

例如:可能我们需要显示不同数据源中数据集的明细,这样我们需要一个统一的方法来显示来自不同数据集的数据,又可能这些数据源提供的数据是各种各样的。这是我们就可以定义这样一个接口,他有一个方法该方法返回一个DataSet数据集。然后给每个数据源,创建一个类。这些类都实现这个接口所定义的返回DataSet数据集的方法。这样一来,我们就可以通过另外一个通用方法来吧这些表示不同数据源类的对象所包含的数据进行显示了。

类似的应用情景还有很多。需要大家在实际项目中体会。

洪虎

2006-10-10