面向对象的设计原则:
1.单一职责原则(SRP)----每个对象应该只有一种责任。
可以达到公用的方法,可以放入一个类中,有差异但相似的方法,可以根据差异单独实现。
例如: 角色(战士,法师)-攻击(物理,法术)-防御。
2.开闭原则(OCP)---设计程序时对功能扩展开放,对修改关闭。
进行功能扩展时不需要修改源代码,更利于后期维护。一般利用接口去添加新方法,在实现类添加具体实现。
3.里氏替换原则(LSP)---任何情况子类替换父类都不会影响程序执行。
使用多态就是里氏替换原则。
4.依赖倒置原则或控制反转原则(DIP)--- 高层不依赖底层,二者都依赖接口和抽象类。
接口用来声明公共方法,抽象类用来实现公共方法。与开闭原则相似。
5.接口隔离原则(ISP)---多个功能分开实现,不强迫使用不需要的功能。
使用多个专门的接口,拆分功能,需要什么就调用什么。
6.迪米特原则(LOP)---尽可能降低类访问级别。降低类与类的耦合。
利用中介来连接两个类,过多的中介类也会导致运行效率的问题,因此不能过度使用。
7.组合/聚合复用原则(CARP)---尽量不使用继承达到复用类的目的,尽量使用组合/聚合方式。
暂时不通,需要翻阅资料,后面单独列出。
设计模式
1.创建型模式
怎么创建对象,什么时候创建对象。
2.结构型模式
对象怎么去描述,采用什么结构更好。
3.行为型模式
规定了各个对象应具备的职责和对象间的通信模式。