摘要:
“状态变化”模式 在组件构建过程中,某些对象的状态经常面临变化,如何对这些变化进行有效的管理?同时又维持高层模块的稳定?“状态变化”模式为这一问题提供了一种解决方案。 典型模式 # state # memento Part 1 State 状态模式 动机 #在软件构... 阅读全文
摘要:
“对象性能”模式 面向对象很好地解决了“抽象”的问题,但是必不可免地要付出一定的代价。对于通常情况来讲,面向对象的成本大都可以忽略不计。但是某些情况,面向对象所带来的成本必须谨慎处理。 典型模式 # Singleton # Flyweight Part 1 单件模式(单例模式) 动机... 阅读全文
摘要:
“接口隔离”模式 在组建构建过程中,某些接口之间之间的依赖常常会带来很多问题、甚至根本无法实现。采用添加一层间接(稳定)接口,来隔离本来相互紧密关联的接口是一种常见的解决方案。 典型模式 #Facade #Proxy #Adapter #Mediator Part ... 阅读全文
摘要:
一,绪论 由于项目需要,需要加强目前的验证码,我们参照的对象是支付宝。 基于PHPCodeIgniter 框架,代码放置在下面的路径下。/application/libraries二,主要代码class VerifyCode{ //声明图像大小 private $width ... 阅读全文
摘要:
part 0 “对象创建”模式 通过“对象创建” 模式绕开new,来避免对象创建(new)过程中所导致的紧耦合(依赖具体类),从而支持对象创建的稳定。它是接口抽象之后的第一步工作。 典型模式 Factory Method Abstract Factory Prototype Builde... 阅读全文
摘要:
part 1 “单一职责”模式 在软件组件的设计中,如果责任划分的不清晰,使用继承得到的结果往往是随着需求的变化,子类急剧膨胀,同时充斥着重复代码,这时候的关键是划清责任。 典型模式 Decorator Bridgepart 2.1 Decorator 装饰模式 动机(Motivation... 阅读全文
摘要:
“组件协作”模式: #现代软件专业分工之后的第一个结果是“框架与应用程序的划分”,“组件协作”模式通过晚期绑定,来实现框架与应用程序之间的松耦合,是二者之间协作时常用的模式。 #典型模式: Template Method、 Strategy、 Observer / Eventpart 1 Tem... 阅读全文
摘要:
摘要 《C++ Primer》习题14.38和14.39分别采用策略模式、模版方法解决问题。 问题 《C++ Primer 5th》习题 14.38 : 编写一个类令其检查某个给定的 string 对象的长度是否与一个阀值相等。使用该对象编写程序,统计并报告输入的文件中长度为 1 的单词有... 阅读全文
摘要:
part 1 编译器 vs2015 VC++。 完整的错误信息粘贴如下:d:\program files (x86)\microsoft visual studio 14.0\vc\include\algorithm(43): error C2451: “std::_Unforced”类型的条件... 阅读全文
摘要:
解《C++ Primer 5th》的 9-50 练习题时,遇到了 lambda表达式值捕获和引用捕获之区别问题。 欲修改捕获的变量 sum,累加之。但当时忘记值捕获和引用捕获是有区别的。下面的代码使用值捕获,未能修改 sum变量的值:int main(){ vector v; st... 阅读全文