面向接口编程

面向接口编程详解(三)——模式研究

喜欢而已 提交于 2019-12-16 15:04:22
通过前面两篇,我想各位朋友对“面向接口编程”的思想有了一定认识,并通过第二篇的例子,获得了一定的直观印象。但是,第二篇中的例子旨在展示面向接口编程的实现方法,比较简单,不能体现出面向接口编程的优势和这种思想的内涵。那么,这一篇作为本系列的终结篇,将通过分析几个比较有深度的模式或架构,解析隐藏其背后的面向接口思想。这篇我将要分析的分别是MVC模式和.NET平台的分层架构。 这篇的内容可能会比较抽象,望谅解。 1.从MVC开始 MVC简介: 本文不打算详细解释MVC架构,而是把重点放在其中的面向接口思想上。所以在这里,只对MVC做一个简略的介绍。 MVC是一种用于表示层设计的复合设计模式。M、V、C分别表示模型(Model)、View(视图)、Controller(控制器)。它们的职责如下: 模型:用于存储应用中的数据及运行逻辑,是应用的实体。 视图:负责可视部分,用于与用户交互及呈现数据。视图只负责显示,不负责将用户的操作行为解释给模型。 控制器:负责将用户的行为解释给模型。根据指定的策略和用户的操作,调用模型的逻辑。 关于三者的关系,我画了一张图,大家请看: 图3.1 MVC模式示意 它们之间的交互有以下几种: 1.当用户在视图上做任何需要调用模型的操作时,它的请求将被控制器 截获。 2.控制器按照自身指定的策略,将用户行为翻译成模型操作,调用模型相应逻辑实现。 3

面向接口编程

倾然丶 夕夏残阳落幕 提交于 2019-12-03 20:45:33
聊聊clean code 2017年01月19日 作者: 王烨 文章链接 7521字 16分钟阅读 clean code,顾名思义就是整洁的代码,或者说清晰、漂亮的代码,相信大多数工程师都希望自己能写出这样的代码。 也许这是个千人千面的话题,每个工程师都有自己的理解。比如我,从一个天天被骂代码写得烂的人,逐渐学习成长,到现在也能写的出“人模人样”的代码来了。这期间算是积累了一点经验心得,想和大家分享,抛砖引玉。 本文主要针对面向对象编程的clean code来阐述,面向过程代码的思路会比较不同,不在本文的讨论范畴。 代码大部分时候是用来维护的,而不是用来实现功能的 这个原则适用于大部分的工程。我们的代码,一方面是编译好让机器执行,完成功能需求;另一方面,是写给身边的队友和自己看的,需要长期维护,而且大部分项目都不是朝生夕死的短命鬼。 大部分情况下,如果不能写出清晰好看的代码,可能自己一时爽快,后续维护付出的代价和成本将远高于你的想象。 对清晰好看代码的追求精神,比所有的技巧都要重要。 优秀的代码大部分是可以自描述的,好于文档和注释 当你翻看很多开源代码时,会发现注释甚至比我们自己写的项目都少,但是却能看的很舒服。当读完源码时,很多功能设计就都清晰明了了。通过仔细斟酌的方法命名、清晰的流程控制,代码本身就可以拿出来当作文档使用,而且它永远不会过期。 相反

面向抽象编程和面向接口编程

匿名 (未验证) 提交于 2019-12-02 21:53:52
原创 以下内容来自《Java 2实用教程》,主编:耿祥义、张跃平 鉴于面向抽象编程和面向接口编程思维培养的重要性,写此博客巩固。 面向抽象编程:    Circle.java 1 public class Circle { 2 double r; 3 Circle(double r){ 4 this.r=r; 5 } 6 public double getArea() { 7 return(3.14*r*r); 8 } 9 } Pillar.java 1 public class Pillar { 2 Circle bottom; //bottom是用具体类Circle声明的对象 3 double height; 4 Pillar (Circle bottom,double height){ 5 this.bottom=bottom; 6 this.height=height; 7 } 8 public double getVolume() { 9 return bottom.getArea()*height; 10 } 11 }    Geometry.java 1 public abstract class Geometry { 2 public abstract double getArea(); 3 }    Pillar.java 1 public class

java面向接口编程

冷暖自知 提交于 2019-11-28 00:13:48
面向接口编程,或是面向基类编程,是设计模式的方法,总结一下 java类库中一个典型的,经常用到的面向对象编程就是List 一般都是使用面向接口编程: List list = new ArrayList(); 而不是面向实现编程: ArrayList list = new ArrayList(); 👇👇👇👇👇以下内容可能没有意义 继承中,使用基类没有定义的方法需要进行类型转换 实现类自己定义方法setName(); 使用时: Dog dog = new MilkDog(); // 向上转型 dog.getName(); // 直接调用 ((MilkDog) dog).setName("littleMilkDog"); // 向下转型后再调用 来源: https://www.cnblogs.com/xfk1999/p/11382199.html