![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
五师弟
摆正心态,天天向上
展开
-
面向接口编程详解(一)——思想基础
我想,对于各位使用面向对象编程语言的程序员来说,“接口”这个名词一定不陌生,但是不知各位有没有这样的疑惑:接口有什么用途?它和抽象类有什么区别?能不能用抽象类代替接口呢?而且,作为程序员,一定经常听到“面向接口编程”这个短语,那么它是什么意思?有什么思想内涵?和面向对象编程是什么关系?本文将一一解答这些疑问。 1.面向接口编程和面向对象编程是什么关系 首先,面向接口编程和面向对象编程并转载 2016-02-20 14:55:04 · 332 阅读 · 0 评论 -
面向接口编程详解(三)
通过前面两篇,我想各位朋友对“面向接口编程”的思想有了一定认识,并通过第二篇的例子,获得了一定的直观印象。但是,第二篇中的例子旨在展示面向接口编程的实现方法,比较简单,不能体现出面向接口编程的优势和这种思想的内涵。那么,这一篇作为本系列的终结篇,将通过分析几个比较有深度的模式或架构,解析隐藏其背后的面向接口思想。这篇我将要分析的分别是MVC模式和.NET平台的分层架构。 这篇的内容可能会比较抽象转载 2016-02-20 15:10:40 · 489 阅读 · 0 评论 -
面向接口编程详解(二)——编程实例
作者: T2噬菌体 来源: 博客园 发布时间: 2012-06-09 12:13 阅读: 15645 次 推荐: 24 原文链接 [收藏] 通过上一篇文章的讨论,我想各位朋友对“面接接口编程”有了一个大致的了解。那么在这一篇里,我们用一个例子,让各位对这个重要的编程思想有个直观的印象。为充分考虑到初学者,所以这个例子非常简单,望各位高手见谅。 问题转载 2016-02-20 15:10:05 · 504 阅读 · 0 评论 -
策略模式使用场景
今天看了Defonds专栏里面对于策略模式应用场景的描述,感觉比较合适,节选了有关的内容 策略模式的定义 策略模式是应用最普遍的设计模式之一。Gof 把策略模式归类到对象行为型模式,《设计模式:可复用面向对象软件的基础》对策略模式做出了明确的定义:“Define a family of algorithms, encapsulate each one, and make t转载 2016-04-04 10:24:15 · 3106 阅读 · 2 评论 -
为什么说多用组合,少用继承?
对类的功能的扩展,要多用组合,少用继承。 对于类的扩展,在面向对象的编程过程中,我们首先想到的是类的继承,由子类继承父类,从而完成了对子类功能的扩展。但是,面向对象的原则告诉我们,对类的功能的扩展要多用组合,而少用继承。其中的原因有以下几点: 第一、子类对父类的继承是全部的公有和受保护的继承,这使得子类可能继承了对子类无用甚至有害的父类的方法。换句话说,子类只希望继承父类的一部分方法,怎么办?转载 2016-02-26 09:03:57 · 679 阅读 · 1 评论 -
观察者模式(一),手动编码(参考仿造《Head First设计模式》)
定义:在对象之间定义一对多的以来,这样一来,当一个对象改变状态,依赖它的对象都会收到通知,并自动更新。 观察者模式相当的普遍,这里使用一个head first书里的一个案例来加深印象。这里是自己的类,java有自己的观察者实现,不过是一个具体的类,并不符合“根据接口编程”原则和“少用继承,多用集合”的原则,而且也不能多重继承,所以复杂的情况下一般都需要自己写观察者模式的代码。 一、主题接口原创 2016-02-28 18:48:11 · 480 阅读 · 0 评论 -
策略模式(参考仿造《Head First设计模式》)
刚刚开始学习,使用一个书里简单的小例子帮助记忆。策略模式:定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。我们先来看一个简单的案例主类//完全解耦,只关联了接口,没有任何实例化,靠子类去实现 public class Food { public Eat eatBehavior; //接口 public void performEat原创 2016-05-21 13:46:22 · 356 阅读 · 0 评论