摘要:
代理模式(Proxy)为其他对象提供一种代理以控制对这个对象的访问。使用场合,第一,远程代理,也就是为一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象存在于不同地址空间的事实;第二,虚拟代理,是根据需要创建开销很大的对象。通过它来存在实例化需要很长时间的真实对象;第三,安全代理,用来控制真 阅读全文
随笔分类 - 设计模式
从活字印刷术的角度理解面向对象编程
2016-12-04 22:24 by jiayayao, 547 阅读, 收藏, 编辑
摘要:
《大话设计模式》开头从活字印刷术的例子讨论面向对象的好处,个人觉得非常形象。活字印刷术主要体现了面向对象的如下几点: 1. 可维护:修改的话只需要修改某一个字; 2. 可复用:别的字可以重新拿来用; 3. 可扩展:如果要加字,只需要刻新字; 4. 灵活性好:横排竖排都可以。 通过封装、继承、多态把程 阅读全文
设计模式之观察者模式
2016-12-04 19:46 by jiayayao, 450 阅读, 收藏, 编辑
摘要:
观察者模式又称发布-订阅(Publish/Subscribe)模式,定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使他们能够自动更新自己。将一个系统分割成一系列相互协作的类有一个很不好的副作用,那就是需要维护相关对象间的一致性 阅读全文
设计模式之单例模式
2016-12-03 22:04 by jiayayao, 631 阅读, 收藏, 编辑
摘要:
单例模式(Singleton),保证一个类仅有一个实例,并提供一个访问它的全局访问点。其构造过程由自身完成,可以将构造方法定义为private型的,这样外界就只能通过定义的静态的函数Instance()构造实例,这个函数的目的就是返回一个类的实例,在此方法中去做是否有实例化的判断。客户端不再考虑是否 阅读全文
设计模式之六大原则
2016-12-03 21:33 by jiayayao, 381 阅读, 收藏, 编辑
摘要:
单一职责原则 单一职责原则(Single responsibility principle),就一个类而言,应该只有一个引起它变化的原因。 在实际编程中的体现,比如一个类只是某一个事物相关的集合,一个函数只做一件事情,不要在这个函数中编写一些不想关的逻辑,这样可以最大程度的提高程序的可维护性,可复用 阅读全文
设计模式之简单工厂模式
2016-12-03 16:56 by jiayayao, 405 阅读, 收藏, 编辑
摘要:
在编写一个计算器程序时,可以将业务逻辑和显示分离,业务逻辑封装为一个类(封装);如果要新添加一种运算,可以先创建一个Operation的基类,然后各种运算从Operation类继承,并实现GetResult()虚函数,这时添加新的运算只需要派生一个新的类,即不需要之前的运算参与编译。如何让计算器知道 阅读全文