面向对象思想设计原则
- 单一职责原则(即高内聚低耦合)
每个类应该只有一个职责,对外只能提供一种功能,而引起类变化的原因应该只有一个,功能细化(在设计模式中,所有的设计模式都遵循这一原则) - 开闭原则
对类的改动是通过增加代码进行的,而不是修改现有代码
要保证这点就需要借助于抽象和多态,把可能变化的内容抽象出来,从而使抽象的部分是相对稳定的,而具体的实现则是可以改变和扩展的 - 里氏替换原则
在任何父类出现的地方都可以用它的子类来替代(同一个继承体系中的对象应该有共同的行为特征) - 依赖注入原则
依赖于抽象类或者接口编程,不依赖于具体实现编程 - 接口分离原则
一个接口不需要提供太多的行为,一个接口应该只提供一种对外的功能,不应把所有的操作都封装到一个接口里 - 迪米特原则
一个对象对其他对象尽可能少的了解,降低各个对象之间的耦合,提高系统的可维护性,在模块之间只通过接口编程,而不理会模块的内部工作原理
单例设计模式
单例设计模式就是要确保类在内存中只有一个对象,该实例必须自动创建,并且对外提供
- 优点
在系统内存中只存在一个对象,因此可以节约系统资源,对于一些需要频繁创建和销毁的对象单例模式可以提高系统的性能 - 缺点
没有抽象层,因此扩展很难;职责过重,在一定程序上违背了单一职责
保证类在内存中只有一个对象的方法:
- 把构造方法私有
- 在成员位置自己创建一个对象
- 通过一个公共的方法提供访问