何时使用Delegate或接口

在以下情况下使用Delegates很有用:

  • 调用一个单一方法;

  • 一个类要进行方法规范(method specification)的多种执行;

  • 使用一个静态方法来执行规范;

  • 想获得类似事件设计的模式;

  • 调用者没有必要知道或获得方法定义的对象;

  • 执行的提供者想将规范的执行“分发(hand out)”成一些可供选择的部分;

  • 代码需要进行简单的组成部分。

接口在以下情况会很有用:

  • 规范指定一套即将被调用的方法;

  • 特别的,一个类只执行规范一次;

  • 接口的调用者想通过接口类型以获得其它接口或类。

时间: 2024-09-30 15:37:24

何时使用Delegate或接口的相关文章

关于delegate, category和subclass

因为自己在学习这三个概念的时候,实在是走了很多的弯路,而且当我意识到这些概念在cocoa中很重要时,我便更糊涂了…或许从C++或者Java转过来的高手一看就明白,所以高手您随便拍砖,指正我的错误:新手的话,不妨稍微看看,说不定对你理解这三个概念有些帮助. 总的来说,这三个概念的用途是:扩充已存在类的功能,说白了,就是给已经有的类加上其他的功能.  首先最常用的办法是,建立子类,继承父类的特点,加上新的类的内容.好处不言自明,自由:你想创建一个什么样的类就创建什么样的类,想加什么加什么.前提是,你

C#学习基础(1)命名约定

c#语言规范建议使用特定大小写约定创建字标识符 Pascal 大小写     标识符中每个单词的首字母大写   用于类型名和成员名  例如:CarDeck,FirstName Camel 大小写     除了第一个单词以为,标识符中所有的单词都首字母大写    用于本地变量和方法参数   例如:totalCycleCount,randomSeedParm 全大写   标识符有大写字母组成   用于缩写词 Console.WriteLine("Mrs {0}",18); c#中可以使用任

JS中事件代理与委托

在javasript中delegate这个词经常出现,看字面的意思,代理.委托.那么它究竟在什么样的情况下使用?它的原理又是什么?在各种框架中,也经常能看到delegate相关的接口.这些接口又有什么特殊的用法呢?这篇文章就主要介绍一下javascript delegate的用法和原理,以及Dojo,jQuery等框架中delegate的接口. JavaScript事件代理 首先介绍一下JavaScript的事件代理.事件代理在JS世界中一个非常有用也很有趣的功能.当我们需要对很多元素添加事件的

框架 day56 BOS项目练习(activiti,历史数据操作,流程变量,任务组,监听器,网关,spring整合)

BOS项目笔记第10天 内容: 1.历史数据查询(历史流程实例数据.历史任务数据.历史活动数据) 2.流程变量 3.组任务(候选人.候选组) 4.监听器(执行.任务) 5.网关(排他.并行) 6.spring整合activiti 1.    历史数据查询 历史是一个组件,它可以捕获发生在进程执行中的信息并永久的保存,与运行时数据不同的是,当流程实例运行完成之后它还会存在于数据库中. 在流程引擎配置对象中可以设置历史记录规则: 1.1   查询历史流程实例数据 表中内容包含已经完成的流程和正在进行

窗体

GDI:图形设备接口 所有能够将电子信号转换成图像显示的设备是图形设备, 常见的图形设备有显示器,打印机. Winform封装了GDI底层的接口,提供一组面向对象的接口,供我们使用 Partial关键字,用他修饰的类叫分布类/部分类,指示该类是整个类的一部分 Text是个字符串,表示关联文本 控件的Name属性表示该控件的对象名 Event 事件:描述一件事已经发生, 当一个事件发生时,让他运行我们指定的代码叫做注册事件, 所有控件都拥有事件. 什么时候引发控件重绘: 1.控件整体或局部可见部分

Chromium线程模型、消息循环

多线程的麻烦 多线程编程是一件麻烦的事,相信很多人深有体会.执行顺序的不确定性,资源的并发访问一直困扰着众多程序员.解决多线程编程问题的方法分为两类:一是对并发访问的资源直接加锁:二是避免并发访问资源:Chromium采用第二种思想来设计多线程模型,通过在线程之间传递消息来实现跨进程通讯. 设计原则 Chromium希望尽量保持UI处于响应状态.为此遵循如下设计原则: 1 不在UI线程上执行任何阻塞I/O操作,以及其它耗时操作. 2 少用锁和线程安全对象 3 避免阻塞I/O线程 4 线程之间不要

大话设计模式1:初识设计模式及设计模式五大基本原则

一什么是设计模式? 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计 模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性. 毫无疑问,设计模式于己于他人于系统都是多 赢的:设计模式使代码编制真正工程化:设计模式是软件工程的基石脉络,如同大厦的结构一样. 二为什么要使用设计模式? 为什么要提倡Design Pattern呢?根本原因是为了代码复用,增加可维护性.那么怎么才能实现代码复用呢?面 向对象有几个原则:单一职责原

activiti监听器使用

分享牛原创(尊重原创 转载对的时候第一行请注明,转载出处来自分享牛http://blog.csdn.net/qq_30739519) activiti使用的时候,通常需要跟业务紧密的结合在一起,有些业务非常的复杂,通常有如下一些场景: 1.activiti人员动态的分配. 2.当前任务节点完成的时候,指定需要指定下一个节点的处理人(比如,一个请假流程,a员工请假,需要指定下一步需要处理请假流程的领导.). 3.任务节点完成的时候,需要一些复杂业务,(比如当前节点完成的时候,需要调用我们的jms消

Chromium on Android: Android系统上Chromium主消息循环的实现分析

摘要:刚一开始接触Chromium on Android时,就很好奇Chromium的主消息循环是怎么整合到Android应用程序中的.对于Android程序来说,一旦启动,主线程就会有一个Java层的消息循环处理用户输入事件等系统事件,而对Chromium来说,它有自己另一套消息循环的实现,这个实现有哪些特点,又将如何无缝整合到Android Java层的消息循环中去,正是本文所要讨论的话题. 原创文章系列,转载请注明原始出处为http://blog.csdn.net/hongbomin/ar