`
Cindy_Lee
  • 浏览: 112026 次
  • 性别: Icon_minigender_1
  • 来自: 武汉人在北京
社区版块
存档分类
最新评论

接口用法随想

阅读更多

关于接口我想大家都不陌生了,关于接口是否有必要的讨论也有很多,我在这里讲的是我对接口用法的一些小方法:


例如:

public interface BeforeAndAfter {
	
	public void beforeDo();
	
	public void afterDo();

}

 

 

public class DoSomething {

	private BeforeAndAfter baa;
	
	public DoSomething(BeforeAndAfter baa){
		this.baa = baa;
	}
	
	public void doSomething(){
		doBefore();
		
		// something you want to do here
		
		doAfter();
	}
	
	private void doBefore(){
		if(baa != null){
			baa.beforeDo();
		}
	}
	
	private void doAfter(){
		if(baa != null){
			baa.afterDo();
		}
	}
}

 

 

public class TheMain {

	public static void main(String[] args) {
		DoSomething ds = new DoSomething(baa);
		
		ds.doSomething();

	}
	
	static BeforeAndAfter baa = new BeforeAndAfter(){

		public void afterDo() {
			//do something after;
			
		}

		public void beforeDo() {
			//do somethis before;
			
		}
		
	};

}

 以上代码是运用接口将主要操作主体部分和其它一些操作分离开,像android里面点击事件控制例如:

SetOnClickListener 接口也是运用的这类方法。。。

 

是否还有更好接口的运用,请大家发言

分享到:
评论
26 楼 Andy19890601 2011-04-07  
我也觉得和aop不大一样
25 楼 shansun123 2011-04-06  
为啥有人投新手帖和隐藏贴呢,挺有意思的段子啊
24 楼 pywepe 2011-04-06  
为什么总纠结这是什么模式,这叫模式叫什么名字呢?

好用,能解决问题就行
23 楼 cczakai 2011-03-03  
组合不是这么用的

查了下资料,严格是桥接模式。

代理,适配存在继承或者实现关系,桥接存在依赖关系,

22 楼 吃死人的男人 2011-02-19  
<p>这不是典型的回调(call back)么</p>
<p>
</p>
<pre name="code" class="java">Timer t =  new Timer();
t.schedule(new TimerTask()
{
        @Override
        public void run()
        {
           
        }

},0,1000);</pre>
 <br>Timer 与 TimerTask 就是这种用法&lt;/p&gt;
<p> </p>
21 楼 zht520 2011-02-19  
zq3062211015 写道
楼主 怎么 直接实例化 接口啊

确实用法比较新奇
20 楼 zq3062211015 2011-02-18  
楼主 怎么 直接实例化 接口啊
19 楼 172742451 2011-01-20  
像代理模式,但又不是
18 楼 330217445 2011-01-20  
回调 静态代理
17 楼 finallygo 2011-01-17  
我觉得用抽象类也可以啊
16 楼 抛出异常的爱 2011-01-16  
现在已经不需要接口完成这种工作了
代理干的挺好的....

PS:
别在设计接口时作任何骇客设计.....
就是最佳接口设计了.

接口可以把你的文档与代码分开写在不同的文件中
上面一点可以让你的每个类的大小保持在一屏
接口还可以让你把不想看见的方法名都过滤掉.
上一点最爽的是你在测试类时不用再想要不要对外暴露这个方法
你只要不在接口里暴露就可以了(当然这个只对君子有用对黑客一样编程的人没用)
接口还可以让你像个人类而不是机器脑袋(天天考虑编译器运行过程的那种人)
上面一点可以让你的生活不必一团乱麻.
因为你可大多数时间像人类一样思考不必担心一个状态位改变会倒至世界未日
当然前提是你写了对应接口的测试.
15 楼 mqlfly2008 2011-01-16  
试图用策略来实现Aop?如果是这样,接口的定义意义何在?接口是一组行为的封装!但同时他还是java泛型的实现!
14 楼 peterwei 2011-01-12  
whaosoft 写道
感觉这想一种设计模式的用法呢 个人感觉介和aop不一样

spring aop的原理不就是java动态代理模式的应用吗?
13 楼 weilingfeng98 2011-01-12  
有点像command模式
12 楼 javabrother 2010-05-12  
liwenjie 写道
其实lz采用的代理模式,这是其中一种用法

正解!
11 楼 lclcr 2010-05-12  
这只是通过接口实现的一种代理模式:
1.声明一个接口
2.子类实现接口,重写接口方法,给出方法的实现
3.声明一个代理类,定义接口变量(在这里是通过接口实现的内部类),传入接口的子类(上转型),然后仍然是接口调用方法,感觉和工厂模式基本上同一个内核
10 楼 p2bl 2010-05-12  
如果只是before after,感觉和AOP差不多,如果说的是一种设计思路,那得预先考虑有多少个DoBefore DoAfter了,DoSomething写死了如何调用BeforeAndAfter,两个类耦合了
9 楼 nenyalanye_1 2010-05-11  
就是运用了组合 类似策略 和代理模式
8 楼 浪客剑心 2010-05-11  
嗯  看起来确实像一种模式
7 楼 coffeesweet 2010-05-11  
在实现里留了个口,随时准备插入

相关推荐

    随想出题随想出题免费版

    随想出题是一款专为教育领域设计的软件,其免费版提供了基础的试题生成与管理功能,旨在帮助教师和学生更便捷地进行教学活动。这款软件的核心特点是简单易用,功能实用,尤其适合家庭学习和课堂教学环境。 1. **...

    编程随想博客文集 2010

    编程随想博客文集 2010

    编程随想博客文集 2009

    编程随想博客文集 2009

    代码随想录+刷题笔记记录

    代码随想录是一个致力于帮助程序员提高编程能力的网站,提供了大量的题目和解题思路供学习和参考。本文主要介绍代码随想录的刷题笔记记录,方便读者更好地利用该网站进行学习。 ## 刷题笔记记录的作用 刷题笔记...

    《代码随想录》最新PDF全集整理发布

    内容概要:这是关于作者针对自己的代码学习笔记《代码随想录》,进行两年后的全面更新与汇总的一则公告。新的PDF版本整合了所有最新内容,并修复和完善了一系列题目解释。尽管如此,作者仍推荐优先在网站上阅读以...

    编程随想博客匿名术文集 2009~2015

    编程随想博客匿名术文集 2009~2015

    代码随想录知识算法讲解PDF

    代码随想录贪心算法知识,非常管用

    软件随想录 软件随想录

    《软件随想录》是一本深入探讨软件开发与管理的经典著作,它涵盖了软件工程的多个重要方面,旨在为读者提供对软件行业的深度洞察。作者通过一系列的随笔和思考,揭示了软件开发过程中的关键问题、挑战以及解决之道。...

    代码随想录算法PDF.zip

    《代码随想录》是一本深受程序员喜爱的算法学习书籍,其PDF版本为读者提供了方便的电子阅读体验。这本书主要针对准备参加编程面试或者想要提升自己算法能力的开发者,通过实例解析和实战演练,帮助读者深入理解算法...

    随想日语晶典2004注册器

    随想日语晶典2004注册器.exe 随想日语晶典2004注册器.exe 随想日语晶典2004注册器.exe

    代码随想录算法PDF.rar

    《代码随想录》是一本深受程序员喜爱的算法学习书籍,尤其对于初学者来说,它提供了深入浅出的讲解和实战演练。这本书的核心是通过实际编程来帮助读者理解和掌握算法,提升编程技能,特别是C++语言的应用。在C++这个...

    「代码随想录」二叉树专题精讲(v2.0).pdf

    「代码随想录」二叉树专题精讲(v2.0)是一套涵盖二叉树基础知识、遍历算法、递归与非递归实现、BST、AVL树等内容的视频课程,由著名程序员博主「代码随想」老师主讲。该课程分为三个部分: 基础篇:介绍了二叉树的...

    软件随想录全集

    《软件随想录》是计算机科学领域的一部经典著作,由知名程序员、软件工程专家、敏捷开发倡导者Martin Fowler所著。这本书集合了他对软件开发的深入思考与实践经验,涵盖了软件设计、项目管理、团队协作等多个方面。...

    随想VB字符串表达式运算控件

    随想表达式运算控件可以使您的应用程序轻松具备用户自定义运算功能。使您开发通用、强大的数据处理系统、电子表格系统成为可能。 目前,随想表达式运算控件支持的运算有: 1.四则混合运算 2.括号 3.以下基本...

    代码随想录 动态规划、回溯、递归、二叉树、贪心

    《代码随想录》是一本深受程序员喜爱的编程学习资料,尤其在算法领域,它提供了丰富的实例和深入的解析,帮助读者理解并掌握动态规划、回溯、递归、二叉树以及贪心等核心算法。这些算法是解决复杂计算问题的基础工具...

    代码随想录的pdf版本,需要准备秋招的小伙伴们看过来呀!

    《代码随想录》是一本深受程序员喜爱的书籍,尤其对于即将参加秋季招聘的计算机科学和技术专业的学生们来说,它是提升编程技能和算法能力的重要资源。这本书深入浅出地讲解了编程思维和各种常见算法,旨在帮助读者...

    软件随想录扫描版

    软件随想录_扫描版_5.79M

    软件随想录

    书中可能讨论了面向对象设计原则,如单一职责原则(SRP)、开放封闭原则(OCP)、里氏替换原则(LSP)、接口隔离原则(ISP)和依赖倒置原则(DIP),以及设计模式的应用,如工厂模式、观察者模式、策略模式等。...

    随想命令按钮控件 V3.0 Build 0401.zip

    随想命令按钮控件V3.0 Build 0401是一个专为开发者设计的软件组件,用于在应用程序中创建和定制独特的用户界面元素,尤其是命令按钮。这个控件提供了比标准Windows控件更丰富的功能和自定义选项,使得开发者能够以...

    代码质量随想录

    "代码质量随想录"是一系列文档,旨在引导初学者和有经验的开发者优化他们的编码习惯,从而提升代码质量,成为更出色的程序员。以下是对这些文件主题的详细解读: 1. **代码质量随想录(一):可读是王道** 可读性...

Global site tag (gtag.js) - Google Analytics