面向接口编程

7 篇文章 0 订阅
3 篇文章 1 订阅

概述:程序是程序员对现实生活的抽象,“抽象”本身又具有抽象性。不同的角度或者说粒度,抽象出的层级也不一样,特征,属性等都有区别。高内聚低耦合的程序和代码设计,应当是程序员自我修养中必有的目标之一。
1.面向接口编程和面向对象编程的关系
面向接口编程是面向对象编程的精髓思想之一,言简意赅。
2.接口的本质
表面来看,接口就是一堆没有主体的方法定义组合的集合体,可以被其他类或者接口继承。C#与C++的区别之一就是在于对于多继承的使用,C++对于多继承无限制,C#则是单个类只能被一个子类继承,在c#中要实现多继承的话,只能通过接口来实现。
接口的代码形式:

 public interface plusUI
    {
        void Eat();
        void Sleep();
        Control GetUI();
         string  Title
        { get;

        }
    }

本质:
1)从本质上来看,接口主要为我们定义了rules(规则),单就机器视觉行业而言,不同的图像处理算子应该满足的基本规则,不同的相机品牌的相机应该满足的基本规则,不同的运动控制卡应该满足的基本规则。无论哪家运动控制卡,都会满足初始化,io信号读取,回原点,位置读写等操作。
2)粒度或者说角度,维度等。这里可以借用刘慈欣的《三体》中的一些观点,同一时间,我们会在不同的平行轨道中继续生活下去,每一个选择都会决定未来不同的走向。框架,类,方法,自设计之初就代表了编写者的一种思想或者说一种角度。
在动物学家的眼里,人类和鲨鱼都是哺乳动物,在遗传学家的眼里,人类和草木都具有遗传性。单单就动物学家眼里的哺乳和遗传学家眼里的遗传性,都是因为满足了某一规则或者说要求,最终被划分为同一类。
程序来源于生活,最终要回到生活中去,我们能否对当下所编写的程序不断地从更好的角度去抽象,去提炼,这是需要不断努力的路线。
3)接口和抽象类的区别:
使用抽象类是为了代码的复用,而使用接口的动机是为了实现多态性。如何选择,可以根据具体的情况来做判断。

abstract class ShapesClass
    {
        abstract public int Area();
    }
    class Square : ShapesClass
    {
        int x, y;
        // Not providing an Area method results
        // in a compile-time error.
        public override int Area()
        {
            return x * y;
        }
    }

抽象类必须被其派生类实现。

总结:在大话设计模式中,经典的23种设计模式有:工程模式、建造者模式、抽象模式、原型模式、单例模式、适配器模式、桥接模式、合成模式、装饰模式、门面模式、享元模式、代理模式、责任链模式、命令模式、解释器模式、迭代模式、调停者模式、备忘录模式、观察者模式、状态模式、策略模式、模板模式、访问者模式。这些模式各有优缺点,不必盲从,更多的时候学百家之长,为我们所用,加油。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

self85

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值