
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
面向服务编程开发是目前大多数软件开发程序员都在学习与应用的一种编程开发方式,下面我们就简单来了解一下,面向服务编程开发常见问题分析。
当我们说“服务”时,我们强调的是其为外在它方提供功能。服务本身具有动词性,核心是其功能性,该功能当然由服务提供者提供,但我们并不关心服务提供者本身。服务具有外向性,即服务存在的价值取决于其对他方(而非自身)的价值。因而,当我们以服务为核心时,我们就必然会以外在旁观者的角度审视其外在价值。当我们说“消息队列服务”,我们看重的是消息队列给我们业务系统带来异步解耦的好处,而不是消息队列本身的内部机制。
这种看待问题的角度对建模是无益的。当提及服务时,总是有个“我”存在(就是那个旁观者),而建模强调的是达到“无我”的境界,需要消除这个旁观者,化身为模型本身,从事物内在角度去思考问题。模型是内在自满足的,它本身具有特定的行为,而不是靠各种服务“提供”给它。
面向服务编程有什么问题呢?不是一样可以对服务内部建模吗?
问题是当我们面向服务,以服务为核心载体时,往往做不到对其内部很好地建模。根本原因在于面向服务的外向型思维和面向实体的内向型思维是冲突的。我们建模时,只会有一种主导思维,其它只起辅助作用。当我们以服务为主导时,先想的是功能,是做什么的问题;当我们以实体为主导时,先想的是谁来做,是主体问题。一种是由功能推导出功能提供者,此处提供者是辅体,功能是主体;一种是由主体推导出主体行为,行为是主体的自在要素。
由于在面向服务编程中,提供者只是辅体,往往容易被忽略,我们并不是太在意谁提供功能,结果就是往往一个类提供了n多个功能,比如一个OrderService提供和订单相关的一切功能。久而久之,Service(特别是业务中的核心Service如商城的OrderService和GoodsService)会变得异常臃肿,难以维护。混乱的职责分配还会导致业务逻辑泄露,不同的开发者可能会选择由不同的提供者提供相同或相似的功能,导致一份业务逻辑在多处出现。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。