1、项目 = 模块 + 沟通
2、设计模式扮演的角色:
帮助我们组织模块
-
帮助我们设计沟通
-
提高代码质量
-
3、设计原则:
1、开闭原则
定义:软件实体(如:类、模块、方法)应该对扩展开放,对修改关闭。
即当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来实现变化。2、单一职责原则(SRP)
3、依赖倒置原则
定义:实现类之间不发生直接的依赖关系,其依赖是通过接口或者抽象类产生的,即面向接口编程
实现类依赖接口或抽象类,接口或抽象类不依赖实现类4、接口隔离原则
定义:建立单一的接口,不要建立庞大臃肿的接口,尽量细化接口,接口中的方法尽量少。
每个模块应该是单一的接口,提供给几个模块就应该有几个接口,而不是建立一个庞大臃肿的接口来容纳所有客户端的访问。
与单一原则的不同之类: 比如一个接口的职责可能包含10个方法,这10个方法都放在一个接口中,并且提供给多个模块访问。各个模块按照规则的权限来访问,在系统外通过文档约束“不使用的方法不要访问”。按照单一职责原则是允许的,按照接口隔离原则是不允许的,因为ISP要求尽量使用多个专门的接口,而不是一个庞大臃肿的接口5、迪米特法则
定义:一个对象应该对其他对象有最少的理解,即一个类应该对自己需要耦合或需要调用的类知道的最少
6、里式替换原则(LSP)
里式替换原则针对的是具有继承关系的父类和子类
定义:所有引用基类的地方必须能透明地使用其子类的对象,
也可以理解为:只要父类出现的地方,子类就可以出现;而且将其替换为子类,也不会产生任何错误或异常。
子类必须完全实现父类的方法(方法不能为空)。即父类的方法必须是子类全部需要的,如果不是全部需要的,就违背了LSP原则。
在勒种调用其他类是必须使用父类或者接口,如果不使用父类或者接口,则类的原则就违背了LSP原则。4、分类
1、创建型
这些设计模式可以帮助我们优雅地创建对象