五大设计原则是:
1.职责单一
2.对修改封闭,对扩展开放
3.子类可在任何情况下替代父类
4.接口细分
5.具体实现依赖抽象
简单指导,一看就晓:
1.根据业务流程,把业务对象提炼出来。如果业务流层的链路太复杂,比如多条进线,那么就把这个业务对象分离为多个单一业务对象。当业务链路标准化后,对业务对象的内部情况做进一步的处理。把第一次标准化视为最高层抽象,第二次视为次高层抽象,以此类推,直到“恰如其分”的设计层次。
第二,职责的分类需要注意。有业务职责,还有脱离业务的抽象职责,从认识业务到抽象算法是一个层层递进的过程。
2.对客户代码(使用该类的地方)封闭,对服务代码(该类的具体实现可以修改,或者替换)开放。
要实现这个需要面向接口编程,因为接口是遵从不变原则的;
需要一个配置器,负责衔接工作;
需要个中间层,隔离客户端和服务器。
3.第一,是客户端不对具体实现有任何假定。也就是不能有侦测具体类型的代码。
第二,面向接口编程。
第三,具体实现需要通过外部测试代码(客户端对服务端的白盒测试),这个包含具体的业务要求,只是符合单纯的接口是不具实际意义的。
4.客户端不应该使用那些他只是局部使用了的接口,当出现这种情况,应该建立一个新的接口,新接口应该一一对应客户端的需求。
5.第一,面向接口编程。
第二,服务分层模型中,上层代码不(直接)使用下层,而是下层使用上层。通过分离的配置附件来衔接各层级的关系。
第三,不同的抽象级别中,高层抽象不使用低层抽象,低层抽象使用高层抽象。
第四,把业务逻辑放在高层中,抽象化编程。