设计模式
为什么会出现设计模式
代码重用性
可读性
可扩展性
可靠性
使程序呈现高内聚,低耦合的特性
1.七大原则
单一职责原则(Single Responsibility Principle)
对类来说的,既一个类应该只负责一项职责
接口隔离原则(Interface Segregation Principle)
客户端不应该依赖它不需要的接口,既一个类对另一个类的依赖应该建立在最小的接口上
里氏替换原则(Liskov Substitution principle)
如果将一个父类对象替换成它的子类对象后,该程序不会发生异常。这也是该原则希望达到的一种理想状态
开闭原则(Open Closed Principle)
对于扩展(提供方)是开放的,但是对于修改(使用方)是封闭的。用抽象构建框架,用实现扩展细节
迪米特法则(Law of Demeter)
又叫作最少知识原则(The Least Knowledge Principle),一个类对于其他类知道的越少越好,就是说一个对象应当对其他对象有尽可能少的了解,只和朋友通信,不和陌生人说话。
合成复用原则(Composite Reuse Principle)
尽量使用对象组合(contains-A)/聚合(has-A),而不是继承关系达到软件复用的目的
2.类图六大关系
2.1.依赖
只要是在类中用到了对方,那么他们就存在依赖关系。如果没有对方,连编译都过不了
类的成员属性
方法的返回类型
方法的接收参数类型
方法内使用到了
2.2.泛化
泛化关系实际上就是依赖关系,他是依赖关系的特例
2.3.实现
实现关系实际上就是A类实现了B接口,他是依赖关系的特例
2.4.关联
关联关系实际上就是类与类之间的联系,他是依赖关系的特例
关联关系具有导航性:即双向关系或者单向关系
关系具有多重性
2.5.聚合
聚合关系(Aggregation)表示的是整体和部分的关系,整体和部分可以分开。聚合关系是关联关系的特例,所以他具有关联关系的导航性和多重性
2.6.组合
也是整体与部分的关系,但是整体与部分不可以分开。
3.设计模式
设计模式是程序员面对同类软件工程设计问题所总结出来的有用的经验,模式不是代码,二十某类问题的通用解决方案,设计模式(Design pattern)代表了最佳的实践。这些解决方案是众多软件开发人员经过相当长的一段时间的实验和错误总结出来的。
设计模式分为三种类型,共23种
创建型模式:单例模式、抽象工厂模式、原型模式、建造者模式、工厂模式。
结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。
行为型模式:模板方法模式、命令模式、访问者模式、代理器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、职责链模式(责任链模式)。