【.NET版月经问题】之一【接口有什么用】

50 篇文章 0 订阅

限于能力一般只在.NET大版转悠...每个月总有那么几帖不定时不定量地就出现了,谓之月经帖...这种问题通常都是初学者或刚转到.NET平台的面向过程开发者的疑问...有问题本身没问题,老是有人问就有问题了,是不知道去看书或搜索呢还是诸多答案鱼龙混杂无法分辨呢?至少CSDN的搜索功能是诟病很久了... 闲着没事陆续小总结一下,希望能帮到有疑问而恰巧看到的朋友... 接口是面向对象方法最重要的特性之一...接口也不是什么新鲜玩意儿,我在10年前用C++、VB5/VB6时就使用接口编程...没错,即使是不完全面向对象的VB5/VB6也有接口特性...所以接口是语言无关的,是一种思维方式... 关于接口的定义和特性最好去看官方教材或官方文档,我就不copy了... 接口到底有什么用?每次这问题都会引来大堆答案,基本上全是在讲接口的表象...其实接口的作用非常简单,一是契约,二是去耦合(即解耦)...在.NET和Java这样的单根继承体系中还有一个作用就是实现多继承,安全的多继承方式,至于单根继承和多继承的关系是另一个问题也不讲了... 当然契约和解耦合这两个词是如此抽象,对于面向对象初学者来说几乎不知道它们是什么意思...那就来看个几乎人人都知道的现实例子... 现在应该几乎没有人不知道银行卡、ATM和POS吧... 假如我需要点现金,打开钱包看看有几张银行卡,记得里面是有钱的,OK...去街上找ATM,附近有好几个银行,我比较懒去最近的一家...到地方一看,偏偏这家银行我没办卡...怎么办?去更远的有卡的银行吗?不需要,我随便拿一张里面有钱的卡塞到ATM里就能取到现金... 然后我顺路去超市买了些东西,付款时我不想用现金,因为用掉我还得去取太麻烦...我随便拿一张里面有钱的卡或随便拿一张管它有钱没钱的信用卡在收银台的POS上刷一下就得... 看看这个过程,和10年前的区别在哪里? 10年前我要取现金是比较麻烦的...那时我有建行和招商的卡,我得满大街找建行或招商的ATM,因为他们不能互通...想在建行的ATM上用招商的卡就俩字儿:没门儿! 至于不拿现金买东西就更别提了,整个中国都没多少能刷卡的地方,那些地方我也消费不起... 而现在为什么这么方便?变化来自各种银行卡上的一个小图标——“银联”标志...每个人都知道有这个标志就意味着你可以随便拿一张有这个标志的银行卡去随便一个有这个标志的ATM去取现金或在有这个标志的商店的POS上刷一把,全中国都可以...有些卡还有Visa、MasterCard两个小图标之一或都有,这些卡更方便,我可以在香港或欧洲在任何一家有这两个标志的ATM上取现金或在商店的POS上刷刷... 这种方便的根本,来源于两个词:契约和去耦合... 契约意味着: 1.契约主体之间要达到某种目的,这些目的是契约主体签订契约的直接动因; 2.契约意味着契约主体在某种程度上的一致同意。不管对于customer还是对于provider,契约都是“合意”的结果; 3.契约还意味着某种形式的许诺。 所以契约在某个范围及某种程度是具有强制性和公信力的...对于customer和provider双方来说,契约都必须得到遵守和执行... 而去耦合意味着: 1.减少对单一系统的依赖性; 2.增加整个体系的稳定性和扩展性; 3.减少单一系统的运维成本,降低整个体系的RIO和TCO。 所以去耦合可以使customer减少甚至摆脱对provider的依赖,同时大大提高体系的稳定性并大大降低RIO和TCO... 因此银联、Visa、MasterCard不是三个图标也不是三个公司,而是三个接口...它们意味着各银行、商家和消费者共同达成契约,同时消除或减弱了从前消费者和商家、银行之间的紧密耦合关系...目的是使我这样的普通消费者和超市那样的大量商家不再依赖于现金或某几家银行,也使得各家银行可以共享客户和资源,大大提高了整个体系运转的效率同时又节省了大笔运维成本... 这就是接口的作用...在软件工程中,合理地运用接口将有效减少各模块、子系统甚至异构系统之间的依赖,增加整个系统的稳定性、扩展性和延续性,以及减少整个系统的开发维护成本、降低整个系统的RIO和TCO...接口的作用不能从技术角度去浅显地理解,而要从软件工程和哲学的观念去思考... 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/vrhero/archive/2010/01/09/5165279.aspx

### 回答1: 我不太清楚你想要的具体内容,但是我可以提供一些建议:首先,要开发一个月经预测软件,需要丰富的知识和技能,比如编程语言c、数据分析、人工智能等。其次,你可以考虑使用一些有关的开发库,如SciPy和NumPy,这些库可以帮助你更方便地进行数据处理和模型分析。最后,在开发过程中,可以使用一些可视化工具,如Matplotlib,以便更好地理解和掌握数据。 ### 回答2: 月经预测软件是一种基于计算机编程语言C开发的工具,用于帮助女性预测和管理月经周期。以下是开发这样一个软件的基本思路: 1. 用户输入:首先,软件需要通过用户输入收集必要的信息。用户需要提供自己最近几次月经的开始日期和周期长度。 2. 数据处理:软件将通过分析这些输入数据,计算得出用户的平均月经周期长度和月经周期之间的变化模式。 3. 预测计算:基于用户最近的月经周期数据,软件可以帮助用户预测下一个月经周期的开始日期。预测可以根据用户输入的数据和已有数据之间的关联关系进行计算,并给出一个预测结果。 4. 提醒功能:软件可以提供一个提醒功能,以便在预测的月经开始日期接近时提醒用户。这有助于用户做好相应的准备和安排,以及在必要时进行必要的医疗咨询。 5. 数据统计和记录:软件可以帮助用户统计和记录月经周期相关数据,例如月经持续时间、经量等,以便用户更好地了解自己的生理变化和周期。 要实现这样一个月经预测软件,需要熟悉C语言的编程知识和相关算法知识。开发过程中还需要引入一些数学和统计学的概念,例如平均值、标准差等,以便更准确地预测用户的月经周期。 总之,使用C语言编写一个月经预测软件需要对计算机编程、算法和相关领域的知识有一定的了解。通过合理的数据处理和计算,结合用户的输入和个人数据,软件可以帮助女性更好地预测和管理自己的月经周期。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值