1.迪米特法则
类之间的联系越少越好,
2.外观模式
添加一个新的类,包含子类,实现不同的组合,降低与外界的耦合,对旧代码的更新可以适用。
3.建造者模式
和外观模式有些类似吧,实现子类的各种不同的组合,也就是在内部实现接口调用顺序,而在外界只需调用具体的接口。
4.观察者模式
一个类A是观察者类,另一个类B是通知者类,B中调用A的接口,A中有B的通知号,其实耦合度还是很高的,只是有一个事件来到时,B主动调用注册A注册在B中的方法,A的方法里会显示调到B的通知,但其实也可以不调,这个没什么影响。在网络协议中就类似于订阅。缺点在于只能调用固定的方法。
5.事件委托
这个的实现是,通知者类有一个函数指针数组,可以指向任意的观察者类注册进来的函数,然后有事件来到时,调用各个接口。实现可以调用不同类的不同函数名称。但这一点在C++中较难实现,因为类中的函数带有this指针,查阅网上各位网友的实现,我觉得都违背了迪米特原则,类之间的耦合度太高,所以不如直接采用观察者模式,加上建造者模式,实现不同通知调用不同类的接口,至少可以使代码清晰,效率更高,但是代码量大大提高,而且灵活度不高。