zoukankan      html  css  js  c++  java
  • EffectiveC#00--选择定义和实现接口,而不是继承

     1.继承就是说它是某物(is a的关系),针对相关类,而接口是说它有某个功能(behaves like.)可以是不相关的

       基类是描述对象是什么,接口描述对象有某种行为。

    2.不能在接口里提供任何成员的具体实现.只是定义属性,事件和索引器等。

      抽象基类可以为派生类提供一些具体的实现,另外也描述了一些公共的行为。

      一个接口可以被任意多个不相关的类型实现。比起在基类中编码,实现接口的编码可以在开发人员中提供更强的伸缩性。

    3.接口做参数和返回值:让方法的参数和返回值使用接口,可以让程序具有通用性,而且更容易重用。

      当类型以类的方式暴露一些属性时就暴露了类的全部接口。用接口你可以选择只暴露一部分想提供给用户使用的方法和属性。以前在类上实现接口的详细内容后来是可以修改的

    public IListSource TheCollection //选择接口而不是Dataset类型
    { 
      get 
      { 
       return _dataSetCollection as IListSource;
      } 
    }
    

    4.雇员,客户和卖主都不相关,至少不存在继承关系。但他们却共享着某些功能。

      他们都有名字,地址,以及联系电话。你应该在一个接口中创建这些属性。

    public interface IContactInfo 
    { 
    string Name { get; } 
    PhoneNumber PrimaryContact { get; } 
    PhoneNumber Fax { get; } 
    Address PrimaryAddress { get; }
     } 
    
    public class Employee : IContactInfo { // implementation deleted. }

    5.补充:曾经在不少书上看到作者推荐同时定义接口和抽象类,而非独立选择其中一种。

    6.推荐在定义一个基类时应该用虚方法。

  • 相关阅读:
    charles连接手机抓包
    charles抓包,打断点,连接手机抓包
    python读写文件相关内容
    python基础操作
    页面刷新 方法总结 JSP刷新[转]
    .html 页面修改成 .jsp 后缀后中文乱码解决办法。
    bootstrap 学习笔记(5)---- 图片和响应式工具
    bootstrap学习大纲
    bootstrap 学习笔记(4)---- 按钮
    bootstrap 学习笔记(3)---- 代码
  • 原文地址:https://www.cnblogs.com/tiantianle/p/4903108.html
Copyright © 2011-2022 走看看