在经典的23个设计模式中,主要利用了面向对象的手段。
面向对象是很好地解决了“抽象”的问题,绝大多数设计模式都在谈论“如何抽象”,怎么利用抽象的技术来实现一种松耦合的设计。但是必不可免要付出一定的代价。
- 比如,继承带来的内存开销(这个代价可以忽略不计)
- 比如,虚函数的性能开销,在某些情况下,有“倍乘效应”,本来事情只做一次,结果做了一万次,这时候的代价会直线上升
对于通常情况来讲,面向对象的成本大都可以忽略不计。但某些情况,面向对象所带来的成本必须谨慎处理。
典型模式
- Singleton
- Flyweight