五大设计原则是:
1.职责单一
2.对修改封闭,对扩展开放
3.子类可在任何情况下替代父类
4.接口细分
5.具体实现依赖抽象
简单指导,一看就晓:
1.根据业务流程,把业务对象提炼出来。如果业务流层的链路太复杂,比如多条进线,那么就把这个业务对象分离为多个单一业务对象。当业务链路标准化后,对业务对象的内部情况做进一步的处理。把第一次标准化视为最高层抽象,第二次视为次高层抽象,以此类推,直到“恰如其分”的设计层次。
第二,职责的分类需要注意。有业务职责,还有脱离业务的抽象职责,从认识业务到抽象算法是一个层层递进的过程。
2.对客户代码(使用该类的地方)封闭,对服务代码(该类的具体实现可以修改,或者替换)开放。
要实现这个需要面向接口编程,因为接口是遵从不变原则的;
需要一个配置器,负责衔接工作;
需要个中间层,隔离客户端和服务器。
3.第一,是客户端不对具体实现有任何假定。也就是不能有侦测具体类型的代码。
第二,面向接口编程。
第三,具体实现需要通过外部测试代码(客户端对服务端的白盒测试),这个包含具体的业务要求,只是符合单纯的接口是不具实际意义的。
4.客户端不应该使用那些他只是局部使用了的接口,当出现这种情况,应该建立一个新的接口,新接口应该一一对应客户端的需求。
5.第一,面向接口编程。
第二,服务分层模型中,上层代码不(直接)使用下层,而是下层使用上层。通过分离的配置附件来衔接各层级的关系。
第三,不同的抽象级别中,高层抽象不使用低层抽象,低层抽象使用高层抽象。
第四,把业务逻辑放在高层中,抽象化编程。
分享到:
相关推荐
这是 windows live writer 的插件,插入代码用处,喜欢可以拿去
com.cnblogs.xamarinandroid_v5.4.28_downcc.com.apk
CnBlogs.Com用到的CSS控制的代码折叠
基于PHP的将博客园(cnblogs.com)数据导入到wordpress的php代码.zip
基于PHP的将博客园(cnblogs.com)数据导入到wordpress的php代码源码.zip
tensorflow_alexnet_classify(详情httpwww.cnblogs.comvipyoumay.zip
该文档是根据博客园汤姆大叔的深入理解JavaScript系列(http://www.cnblogs.com/TomXu/archive/2011/12/15/2288411.html)博文整理而成,主要内容包括: 1.编写高质量JavaScript代码的基本要点 2.揭秘命名函数...
23种设计模式的java实现。创建型 抽象工厂模式 http://www.cnblogs.com/java-my-life/archive/2012/03/28/2418836.html 工厂方法 http://www.cnblogs.com/java-my-life/archive/2012/03/25/2416227.html 建造者模式 ...
Entity Framework试水系列-博客园cnblogs.rar
流程图 博文链接:https://cailin.iteye.com/blog/143116
Entity Framework学习初中高级篇-博客园cnblogs.rar
Android呼叫转移代码,参考的链接在http://www.cnblogs.com/klcf0220/p/3655867.html
http://www.cnblogs.com/cacique/archive/2012/09/29/2707976.html django 简易博客开发 2 模板和数据查询 http://www.cnblogs.com/cacique/archive/2012/09/30/2709143.html django 简易博客开发 3 静态文件、...
,C# 简单的作业调度,亦可参考博客:http://www.cnblogs.com/chenwolong/p/Job.html,C# 简单的作业调度,亦可参考博客:http://www.cnblogs.com/chenwolong/p/Job.html,C# 简单的作业调度,亦可参考博客:...
一个简单的财务会计软件,能够录入会计凭证,并根据凭证自动生成三大报表。详情查看:https://www.cnblogs.com/edwardorchis/p/10506391.html 如何快速开始 https://www.cnblogs.com/edwardorchis/p/14405910.html ...
canvas 不规则透明图像边缘羽化 看了一个哥们的文章写的。 看了这个帖子写的 https://www.cnblogs.com/luoeeyang/p/9337871.html 用在抠图之后,消除边缘毛边。 谁还有更好的算法求分享
┕全文下载(供转载专用):http://www.cnblogs.com/Files/Tangf/Nuvi350.rar MapBar中坐标的加密和解密(JS实现) http://www.cnblogs.com/Tangf/archive/2006/06/06/419124.html 发现一个SVG做的地图网站:ChinaQuest ...
解决: Mysql安装时mysqld.exe报`应用程序无法正常启动(0xc000007b)`的问题 https://www.cnblogs.com/hellomrr/p/13237684.html
博客园地址http://www.cnblogs.com/noticeable/p/7220368.html 详细讲解了开发流程