先学面向对象 ----》 实现功能(设计模式 + 算法(数据结构)) ---》框架(多种设计模式)---》架构(服务器集群)
单一职责 : 类上 /类方法少,也可以在方法上
接口隔离:依赖(使用)接口 ----实现接口(接口子类)
A类通过接口依赖(使用)B类,接口最小原则,防止实现类B实现不需要的方法
依赖倒换(面向接口编程):高层:接口/抽象类(制定规范) 底层:具体实现类,细节依赖抽象即具体类使用接口
让 变量引用 与 实际对象 之间有个缓冲层。利于扩展优化
里氏替换(里女士提出,如何正确使用继承):要求换子类,程序行为没发生变化。即使用继承,要求尽量不要重写父类方法!
但继承会带来侵入性,增加了耦合,即父变子倒霉。可以通过聚合,组合,依赖解决问题。
多态频繁使用,导致错误?这他么是跟多态对着干啊
但又想用父类方法,可以让子类提升档次(去除继承关系),和原父类公用基类,组合(new?)使用A里方法
开闭原则(ocp):提供方修改扩展开放,使用方修改关闭
修改后
迪米特法则(最少知道原则,和直接朋友通信,不要和陌生朋友说话)目的降低类见耦合!
直接朋友: 成员变量,方法参数,返回值
陌生朋友:方法里面new对象
依赖,关联,聚合,组合等都是耦合
合成复用原则(少用继承,多用合成/聚合)