如果说继承是面向对象程序设计中承前启后的特质,那么接口就是海纳百川的体现了.它们都是对数据和行为的抽象,都是对性质和关系的概括.只不过前者是纵向角度,而后者是横向角度罢了.今天呢,我想从设计+语法角度说一说我感受到的面向接口编程,从而初探设计与实现分离的模式. (本文所使用的面向对象语言为java,相关代码都是java代码) 设计——接口抽象设计 继承的思想很容易理解,提取几类相近数据中的公共部分为基类,各个独立部分在基类的基础上做自己专属的延伸.接口是抽象概括输入和输出,而具体的实现交由具体实…
.测试与JSF正确性论证 测试和JSF正确性论证是对一个程序进行检验的两种方式.测试是来的最直接的,输入合法的输入给出正确的提示,输入非法的输入给出错误信息反馈,直接就能很容易的了解程序的运行情况.但是,每次测试只是在程序涉及的整个问题空间取一个元素进行测试,一次测试只能确保程序对于测试中的样例和同类样例是正确的,并不能确保全局正确性.而为了追求全局覆盖性,就需要大规模的测试样例轰炸了,但是这时测试的最致命缺陷就出现了,一是如何构造如此大量且属于不同类别的测试样例,二是如何确保构造的测试样例能够…
OO博客总结--OO落下帷幕 凡此过往,皆为序章. 不知不觉OO课程即将落下帷幕,一路坎坎坷坷磕磕绊绊,可算是要结束了,心里终于松了一口气,也有小小的不甘和遗憾.凡此过往,皆为序章.特殊的线上OO课程结束了,但面向对象的旅程才刚刚开始! 一.第四单元架构设计 第一次作业 本次作业是完成类图的解析器,对类图进行一些基本的分析,如对类图中类\操作\属性\关联\实现\继承等查询. 我认为第四单元作业第一步要解决的是对UML的几种主要视图,特别是类图,状态图,顺序图的结构和mdj文件结构的分析.如果将U…
前言 前面两篇文章介绍了在github上使用hexo搭建博客的基本环境和hexo相关参数设置等. 基于目前,博客基本上是可以完美运行了. 但是,有一点是不太好,就是源码同步问题,如果在不同的电脑上写文章会非常不方便. 是因为hexo使用的部署命令是把生成好的静态文件上传到仓库中的,所以,在其他电脑上同步下来的只是静态文件而已,不是源码. 到这里就会想到能不能这样:将源码同步到远程仓库后,可以实现自动生成部署呢? 答案是肯定的,可以通过Travis CI来实现. 那么,本文就介绍一下Travis…
Django搭建博客网站(三) 第三篇主要记录view层的逻辑和template. Django搭建博客网站(一) Django搭建博客网站(二) 结构 网站结构决定我要实现什么view. 我主要要用view展示首页,标签页,网站管理员(也就是本人啦)信息页,以及文章详情页. settings.py 因为到这个阶段需要编写html文件了,但是每一个网页的每一行代码都靠自己去写,各种渲染也靠自己去写的话,太麻烦了,Django提供了html模板功能,可以在settings.py里面进行配置. #…
Django 系列博客(三) 前言 本篇博客介绍 django 的前后端交互及如何处理 get 请求和 post 请求. get 请求 get请求是单纯的请求一个页面资源,一般不建议进行账号信息的传输. 配置路由 from django.conf.urls import url from django.contrib import admin import app.views as app_views import newApp.views as new_views urlpatterns =…
JavaScript 系列博客(三) 前言 本篇介绍 JavaScript 中的函数知识. 函数的三种声明方法 function 命令 可以类比为 python 中的 def 关键词. function 命令声明的代码区块,就是一个函数.命令后面是函数名,函数名后面的圆括号里面是要传入的形参名.函数体放在大括号里面. function fn(name) { console.log(name); } 使用 function 命名了一个 fn 函数,以后可以通过调用 fn 来运行该函数.这叫做函数的…
thinkphp5项目--个人博客(三) 项目地址 fry404006308/personalBlog: personalBloghttps://github.com/fry404006308/personalBlog 一.使用百度编辑器 百度编辑器简介及使用链接: 百度编辑器简介及如何使用 - 复习,总结,实例 - 博客园http://www.cnblogs.com/Renyi-Fan/p/8778291.html 代码 <!DOCTYPE html> <html><hea…
文章目录 其他搭建 1. 添加博客图标 2. 鼠标点击特效(二选一) 2.1 红心特效 2.2 爆炸烟花 3. 设置头像 4. 侧边栏社交小图标设置 5. 文章末尾的标签图标修改 6. 访问量统计 7. 添加站内搜索 8. 启动阅读更多按钮 9. 文章顶置(二选一,看看哪种简单) 9.1 方法一 9.2 方法二 10. 在文章底部增加版权信息 10.1 方式一 10.2 方式二(比较麻烦,但是好看) 11. 添加打赏 12. 文章加密访问 13. 启动代码复制按钮 14. 在Footer添加站点…
OO第三单元小结 一.JML语言理论基础以及应用工具链情况梳理 一句话来说,JML就是用于对JAVA程序设计逻辑的预先约定的一种语言,以便正确严格高效地完成程序以及展开测试,这在不能容忍细微错误的工程领域如航空航天领域有广泛应用. 1.1 JML语言理论基础 本单元我们学习了一些语言理论基础,梳理如下: 1.requires 该子句定义了方法的前置条件 2.assignable子句,列出方法修改的类成员属性.\nothing则表示方法不改变任何成员属性,是一个pure的方法 3.ensure子句…