在程序设计时,如果滥用继承会导致类的数量急剧的扩大,所以当我们设计程序时,要学会用对象的职责而不是结构来考虑问题。此时需用到桥接模式,即合成/聚合复用原则。
合成是一种强的“拥有”关系,体现了严格的部分和整体的关系,部分和整体的生命周期一样。
聚合表示一种弱的“拥有”关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分。
优点:优先使用对象的合成/聚合将有助于你保持每个类被封装,并被集中在单个任务上。这样类和类继承层次会保持较小规模,并且不太可能增长为不可控制的庞然大物。
单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。客户端不考虑是否需要实例化的问题,而把责任都给了应该负责的类去处理。我们平时编程时应注意这个问题,会导致重复实例化,占用资源。
优点:遵循封闭的原则,通过封装它的唯一实例,就可以严格控制客户怎样访问以及何时访问它。通常采用私有化的构造方法来避免其有实例。
单例类与实用类的区别:
实用类不保存变量状态,仅提供一些静态方法或静态属性让你使用,而单例是有状态的。
实用类不能用于继承多态,而单例虽然实例唯一,却可以由子类来继承。
实用类是一些方法属性的集合,而单例却有着唯一的对象实例。
浙公网安备 33010602011771号