引子:
每天都会逛论坛,但是每天都会逛完就撇,什么都没有留下,什么也不能拿走,哎!如今的时代都是快餐为主,就算你看到令你醍醐灌顶的绝顶好文,你也只是叫个好坐,之后就不了了之了。看过,激动过都是曾经的一刹那罢了,仔细思考,自己能不能每天看完一些好文后,都写一遍《逛逛论坛总结》呢,算是标识一下自己这一天看到了什么,对什么感兴趣,学到了什么。
本人也做些说明吧:这些都是一些已发表的文章杜撰的,但是,本人可能无法一一列出出处,如果真的对你本人产生了影响,就电邮我把:daqing15@gmail.com。
修炼我们程序员的内功:设计模式与面向对象思想!设计模式是对软件开发中普遍的一些问题一项重大方法结晶了,可是,作为一名程序员,真正能理解到这一精要的又有多少呢,大部分(包括自己吧)都是纸上谈兵与依样画葫芦。产生这的原因有很多,但是,可能都是因为工作中不怎么使用到设计模式;不能肯定自己在那种合适的场合何时合适地使用设计模式;开发经验少,还不足以真正的了解到设计模式之精华等等。但是,无论如何,前人给我们这些“小菜”们,总结了不少经验吧,我们总能吸取别人的经验。譬如
1、什么时候使用设计模式?
1.1 敏捷以及极限编程中倡导不预先设计,不会首次使用设计模式。但是如果符合设计模式的经典场合,那就不要居于小节了吧,直接上就是。
【敏捷、极限编程,哥们在这可要注意了,如果你对这两个词不怎么了解的,应该 GOOGLE或BAIDU吧,总没坏处的。万一某天,在面试的时候被问及这个,小哥你可就空有成足了吧!】
1.2 发现设计会引入坏味道、使用设计模式可以明显提高灵活性,也使用
2、过度设计的出现,如何防止
一个人总是想立马就实践自己学到的新技术,这种迫切的心情,大家都应该体会过。但是,如果过分的迷恋“设计模式”,也会给自己带来“过度设计”的问题。
2.1 继承结构层次太多造成过度复杂
2.2 继承与聚合不能分清楚 优先使用聚集而不是继承应该使用接口还是抽象类
继承本身没有错,关键主要是继承了不该继承的方法,很可能导致增加继承类的层次。采用了继承也不能像策略模式那样运行时变化行为。
2.3 过度抽象了你的接口。造成不必要的复杂性。
2.4 全局的公用类
通常都是在项目中复用了某些静态方法,而把其都集中在一个大类中。如此,貌似提高了复用,实际上项目中大多数包依赖于这种代码,造成不易拆解进行单元测试。不合符测试驱动的思想【驱动测试的概念???】,小心违反了借口隔离原则。
3、面向对象的设计原则
(1)单一职责原则
就一个类而言,应该仅有一个引起它变化的原因(否则就因该考虑这个类的职责分离)
(2)开闭原则
客户的需求是不稳定的,通过扩展已有的软件系统而不是通过修改软件系统来满足客户的需求,这样的软件系统就满足开-闭原则,即软件系统要有一定的灵活性和适应性。
已有的模块,特别是抽象层的模块不能修改,保证软件系统的稳定性和延续性。
解决问题的关键是抽象化,把它与具体实现分离开来。接口(interface),抽象类的应用
对可变性封装:将可变性封装到一个对象里。
(3)里氏替换原则
在有基类出现的地方,子类均可以替代。
当两个具体类关系违反里氏代换原则时,一种办法是抽象出一个基类,作为这两个类的父类,一种是应用组合聚合关系建立关系。
(4) 接口隔离原则
定制服务的例子,每一个接口应该是一种角色,不多不少,不干不该干的事,该干的事都要干
(5) 依赖倒转原则
抽象不应该依赖与细节,细节应当依赖与抽象。
要针对接口编程,而不是针对实现编程。
传递参数,或者在组合聚合关系中,尽量引用层次高的类
(6) 迪米特应法则
如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互关系.
如果其中一个类需要调用另外一个类的某一个方法的话,可以通过第三者转发这个调用
分享到:
相关推荐
【海狸逛逛小程序前端hailigg.zip】是一款专为家居行业设计的小程序前端源码,旨在提供一个学习和开发家居小程序的平台。这个压缩包包含了一整套用于构建和运行此类小程序所需的代码资源,使得开发者能够快速上手并...
23逛逛营销.xmind
一款漂亮的3D淘宝商品浏览器,“随便逛逛看看淘宝商品”的工具。更大的商品展示空间、更少的等待时间、更炫的3D商品墙展示手法,给您带来全新的购物体验。逛逛-3D网上商品浏览工具 v2.3 更新内容:加入人气排序,...
幼儿园小班社会教案《逛逛幼儿园》润新教育.txt
我爱写作 2009更多精彩,欢迎来我的论坛逛逛! 快乐论坛630 http://hanranran.5d6d.com/bbs.php 快乐网赚论坛 http://wangzhuan630.5d6d.com/bbs.php 中国网赚论坛 ...
更多精彩软件,欢迎来我的论坛逛逛! 快乐论坛630 http://hanranran.5d6d.com/bbs.php 快乐网赚论坛 http://wangzhuan630.5d6d.com/bbs.php 中国网赚论坛 http://wangzhuan9630.finance.topzj.com/index.php ...
翔飞外贸英语翻译器更多精彩,欢迎来我的论坛逛逛! 快乐论坛630 http://hanranran.5d6d.com/bbs.php 快乐网赚论坛 http://wangzhuan630.5d6d.com/bbs.php 中国网赚论坛 ...
五笔字根表 1.0更多精彩,欢迎来我的论坛逛逛! 快乐论坛630 http://hanranran.5d6d.com/bbs.php 快乐网赚论坛 http://wangzhuan630.5d6d.com/bbs.php 中国网赚论坛 ...
- **背景**:在《巴黎欧莱雅天猫38女王节×逛逛运营计划》中,通过内容营销与社交媒体的深度整合,实现产品的推广和销售。 - **策略**: - **种草期**:利用KOL(意见领袖)、KOC(关键意见消费者)和素人进行产品...
该版本在速度、功能、稳定性和资源占用等方面都做了很好的改善(主要是以网址导航站+百度网站搜索小偷+页面美化),最主要的是在网站风格界面方面做了重大调整和美化。 超管页面在admin/index.asp。...
.版本 2 .支持库 iext2 超级按钮_发布....提示_置内容 (“发布中....”) .如果真 (选择框_定时发布_开关.... online_time = 时间_到文本 (日期框_定时发布_时间.... zz.... online_time = zz................ck = 编辑框_cookie....
教育教学
- **walk around**: 四处走走,散步或逛逛的意思。 - **because of**: 因为,表示原因。 - **one bowl of…**: 一碗……,量词的使用。 - **the next day**: 第二天,时间表达。 - **drink tea**: 喝茶,简单的...
这两天心情不错手头没啥工作听听歌逛逛论坛在心中顿时萌发点想法做到点啥呢,好吧。天天动听界面不错仿个吧用小爷的宏观看一下。其余界面都简单,唯独是淘歌界面有点复杂, ViewPager中嵌套ViewPager+ListView,...
标题中的“马里奥的银币2.docx”暗示这是一个关于计算问题的程序,而描述中的“利用c++做出来滴”表明这个问题是通过C++编程语言解决的。结合标签“c++”,我们可以确定这是一个使用C++编程解决的数学或算法问题。...
京东sku批量采集软件1.9版
刚刚进来也没有被安排什么事情做,就到处逛逛。看到几个奇怪的家伙躲在一间办公室里瞎忙活.过去问了一下是在做一个开源项目叫selenium.说是在用JavaScript写Web应用的功能测试工具。”噢.JavaScript。我在前一个...