1.设计原则
1.单一职责原则
定义:应该有且仅有一个原因引起类的变更。
2.里氏替换原则
定义:所有引用基类的地方必须能透明地使用其子类的对象
四层含义:
1.子类必须完全实现父类的方法
2.子类可以有自己的个性
3.覆盖或实现父类的方法时输入参数可以被放大
4. 覆写或实现父类的方法时输出结果可以被缩小
3.依赖倒置原则
定义:高层模块不应该依赖低层模块,两者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。
java中含义:(面向对象编程)
1.模块间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过接口或抽象类产生的;
2.接口或抽象类不依赖于实现类;
3.实现类依赖接口或抽象类。
4.接口隔离原则
含义:
1.客户端不应该依赖它不需要的接口;
2.类间的依赖关系应该建立在最小的接口上。
衡量接口是否满足隔离原则:
1.一个接口只服务于一个子模块或业务逻辑;
2.通过业务逻辑压缩接口中的public方法,接口时常去回顾,尽量让接口达到“满身筋骨肉”,而不是“肥嘟嘟”的一大堆方法。
5.迪米特法则(最少知识原则)
含义:一个对象应该对其他对象有最少的了解。
理解:对所调用的类不需要知道内部实现细节。
6.开闭原则
含义:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭
理解:对功能的扩展时,要扩展原有接口或类,不要去修改已经正在实用的类。
2.设计模式
1.单例模式
含义:确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。
2.工厂方法模式
定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。
理解:需要传入被创建类的class,通过反射创建实例对象。
3.抽象工厂模式
定义:为创建一组相关或相互依赖的对象提供一个接口,而且无须指定它们的具体类。
理解:不需要传入class,由工厂创建方法直接new 对象出来。
4.模板方法模式
定义:定义一个操作中的算法的框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
理解:在抽象类中实现基本方法,在该基本方法中可以调用在子类中才实现的方法。
5.建造者模式
定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
理解:创建对象和对象行为分离开来,创建这可以生产各种类型的对象。
6.代理模式
定义:为其他对象提供一种代理以控制对这个对象的访问。
理解:用户调用时使用代理类,真正执行时代理方法调用的是原始类的方法。