我们在实现计算器的时候,得考虑到界面与逻辑的分离。
那么基本程序的架构一般包含:1、用户界面模块(UI),用来接受用户输入及呈现数据;2、业务逻辑模块(Business Logic),根据用户需求处理数据。
基本的设计原则是:功能模块之间需要进行解耦;核心思想是强内聚,弱耦合:1. 每个模块应该只实现单一的功能;2. 模块内部的子模块只为整体的单一功能而存在;3. 模块之间通过约定好的接口进行交互。
那么在工程开发中接口是什么呢?从广义上来说,接口是一种契约(协议,语法,格式等)。从狭义上来说,分为面向对象和面向过程两个方面。对于面向过程而言,接口是一组预定义的函数原型。对于面向对象而言,接口是纯虚类(C# 和 Java 直接支持接口)。
那么我们实现的用户界面与业务逻辑的交互可以用下图来描述:
模块之间仅通过接口进行关联:必然存在模块会使用接口,必然存在模块实现对应的接口。
模块间的关系是单向依赖的:避免模块
那么基本程序的架构一般包含:1、用户界面模块(UI),用来接受用户输入及呈现数据;2、业务逻辑模块(Business Logic),根据用户需求处理数据。
基本的设计原则是:功能模块之间需要进行解耦;核心思想是强内聚,弱耦合:1. 每个模块应该只实现单一的功能;2. 模块内部的子模块只为整体的单一功能而存在;3. 模块之间通过约定好的接口进行交互。
那么在工程开发中接口是什么呢?从广义上来说,接口是一种契约(协议,语法,格式等)。从狭义上来说,分为面向对象和面向过程两个方面。对于面向过程而言,接口是一组预定义的函数原型。对于面向对象而言,接口是纯虚类(C# 和 Java 直接支持接口)。
那么我们实现的用户界面与业务逻辑的交互可以用下图来描述:
模块之间仅通过接口进行关联:必然存在模块会使用接口,必然存在模块实现对应的接口。
模块间的关系是单向依赖的:避免模块