总原则
高内聚:模块内功能独立,职责明确,不依赖其他模块,对外提供服务通过接口
低耦合:模块之间的依赖程度低,功能相互独立,模块间的联系通过接口
设计模式六大原则
开闭原则:实现热插拔,提高扩展性。对拓展开放,对修改关闭;
里氏代换原则:任何基类可以出现的地方,子类一定可以出现;
依赖倒转原则:针对接口编程,依赖于抽象而不依赖于具体;
接口隔离原则:使用多个隔离的接口,比使用单个接口要好,降低类之间的耦合度;
迪米特法则,最少知道原则:一个实体应当尽量少地与其他实体之间发生相互作用,使得系统功能模块相对独立;
合成复用原则:尽量使用合成/聚合的方式,而不是继承;
设计模式概括
工厂模式:通过工厂模式创建不同的对象
抽象工厂模式:创建不同的工厂,创建不同的对象
建造者模式:使用多个简单的对象一步一步构建成一个复杂的对象,直观的构建不同的性质的对象
适配器模式:是作为两个不兼容的接口之间的桥梁
观察者模式:一对一,一对多
原型模式:实现克隆接口,Bundle,Intent
策略模式:定义了一些列的算法,并将每一个算法封装起来,而且使它们还可以相互替换,遵循了开闭原则,属性动画中的差值器和估值器
责任链模式:通常每个接收者都包含对另一个接收者的引用,如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者。职责链上的处理者负责处理请求,客户只需要将请求发送到职责链上即可,无须关心请求的处理细节和请求的传递,所以职责链将请求的发送者和请求的处理者解耦了
代理模式:体现了开闭原则,可以做到在不修改目标对象的功能前提下,对目标功能扩展。
静态:被代理对象与代理对象一起实现相同的接口,拓展功能,只能代理一类对象
动态:被代理对象需要实现接口,拓展功能可以用来代理任何对象,只是执行逻辑相同。代理类对象在运行时动态生成,被代理类对象在运行时决定