05 2016 档案

摘要:定义 动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式比生成子类更为灵活。 特点 建造者模式要求建造过程必须是稳定的。装饰模式的建造过程则是不稳定的。 讲究组合方案、先后顺序。即,将所需的功能按正确的谁许串联起来进行控制。 装饰顺序很重要(数据加密、数据过滤)。 价值 为已有功能动态地添 阅读全文
posted @ 2016-05-27 15:36 PanPan003 阅读(208) 评论(0) 推荐(0) 编辑
摘要:依赖倒转原则 解释 抽象不应该依赖细节,细节应该依赖于抽象。 即,针对接口编程,不要对实现编程。 实现 高层模块不应该依赖低层模块。两个都应该依赖抽象。 抽象不应该依赖细节。细节应该依赖抽象。 价值 依赖倒转是面向对象设计的标志。 如果编写程序时考虑的都是如何针对抽象编程而不是针对细节编程。即,程序 阅读全文
posted @ 2016-05-27 14:33 PanPan003 阅读(1174) 评论(0) 推荐(0) 编辑
摘要:含义 使用DataReader是一个比较节省服务器资源的选择。DataReader提供了一种只读的、只向前的数据访问方法,因此在访问比较复杂的数据,或者只是想显示某些数据时,DataReader再适合不过了。 datareader对象提供只读单向数据的快速传递,单向:您只能依次读取下一条数据;只读: 阅读全文
posted @ 2016-05-26 15:17 PanPan003 阅读(416) 评论(0) 推荐(0) 编辑
摘要:1.肯定断言:必须匹配一个字符 排除型字符组:匹配未列出字符的字符组 2.范围表示法——列出范围内所有的字符 大多数情况下,不会影响执行速度。但是,某些实现方式不能完全优化字符组。所以,最好是有范围表示法,有可能速度更快。 [a-Z],可能存在遗漏;[a-zA-Z],可以匹配所有字母。 3.点号:在 阅读全文
posted @ 2016-05-26 10:46 PanPan003 阅读(1034) 评论(0) 推荐(0) 编辑
摘要:解释 软件实体(类、模块、函数等等)应该可以扩展,但是不可以修改。 特征 对于扩展是开放的。(实现方式) 对于更改是封闭的。(目的) 针对问题 怎样的设计才能面对需求的改变却可以保持相对稳定,从而使系统可以在第一个版本以后不断推出新版本呢? 需求是一定会变化的,如何在面对需求的变化是,设计的软件可以 阅读全文
posted @ 2016-05-26 10:44 PanPan003 阅读(735) 评论(0) 推荐(0) 编辑
摘要:解释 就一个类而言,应该仅有一个引起它变化的原因。 针对问题 类的功能太多,导致任何需求变化,都需要更改类,维护麻烦,难以复用,缺乏灵活性。 如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会 阅读全文
posted @ 2016-05-26 10:05 PanPan003 阅读(134) 评论(0) 推荐(0) 编辑
摘要:定义了算法家族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化,不会影响到使用算法的客户。 适用于:算法时常变动。例如,商场打折、返利、积分兑换规则。 最重要:算法随时可以互相替换,这是变化点,因此需要封装变化点。 使用: 改造后,与工厂模式结合: 总结: 策略模式是一种定义一系列算法的方 阅读全文
posted @ 2016-05-25 16:01 PanPan003 阅读(255) 评论(0) 推荐(0) 编辑
摘要:基础知识介绍: 子表达式匹配 环视 引号内的字符串:"(^")*" 12小时制:(1[0123]|[1-9]):[0-5][0-9]*(am|pm) 24小时制:(([01]?[0-9])|(2[0-3])):[0-5][0-9]* 浮点数,保留小数点两位,如果第三位不为零,保留第三位:~s/(\. 阅读全文
posted @ 2016-05-13 15:08 PanPan003 阅读(395) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示