面向对象很好的解决了“抽象”问题,但是不可避免地要付出一定的代价。对于通常情况来讲,面向对象的成本大多可以忽略不计。但在某些情况下,面向对象的成本必须谨慎处理。
单例模式(Singleton)
Singleton模式一般不要支持拷贝构造函数和Clone接口,因为这有可能导致多个对象实例,与Singleton模式初衷违背。
享元模式(Flyweight)
①Flyweight主要解决面向对象的代价问题,一般不触及面向对象的抽象性问题。
②Flyweight采用对象共享的做法来降低系统中对象的个数,从而降低细粒度对象给系统带来的内存压力。