嗯~ o(* ̄▽ ̄*)o,一边复习,一边捡一下面试常考的设计模式。。。。。。
首先,明确一点,设计模式十分有用,向java提供的类库的话,有的就是根据某个设计模式开发的,而且以后在实际项目中我们也要尝试的将设计模式运用到自己的项目中。
学习设计模式前需要get到的点
1)UML
1知道uml的类图怎么❀(可见性-+# 名称: 类型)
2明确类之间的种关系,怎么❀
关联关系(一个类的对象作为另一个类的属性)---------------------------->(实线)
?:关联关系包含聚合关系和组合关系
依赖关系(某个类的方法使用另一个类的对象作为参数)------------------->(虚线)
泛化关系==继承关系(extends)----------------------▲(实线)
实现关系==接口关系(implements)----------------▲(虚线)
2)设计原则
1单一职责原则:类的指责要单一,不能将太多的职责放在一个类中(类的职责单一)
2开闭原则:软件 实体对扩展开放,对修改关闭(接口/抽象类)
3里氏代换原则:一个可接受基类对象的地方必然可以接受一个子类对象(父类引用指向子类实例)
4依赖倒转原则:对抽象层进行编程,不对具体类进行编程(抽象)
5合成复用原则:尽量多使用向聚合,组合这样的关联关系,少使用继承关系(类与类之间的关系,耦合度)
6接口隔离原则:使用多个专门的接口来替代一个统一的接口(接口的职责要单一)
7迪米特法则:两个类之间如果有相互作用,最好通过一个第三者发生间接交互
如果上述的点,你get到了,那么恭喜你,可以开始学习设计模式了,我们先来大概的看一下吧。
模式的分类
1创建型模式---------------------------------------------------------------------------用于创建对象
工厂方法/抽象工厂/建造者/原型/单例
2结构型模式---------------------------------------------------------------------------用来处理类或对象的组合
适配器/桥接/组合/装饰/外观/享元/代理
3行为型模式---------------------------------------------------------------------------描述类或对象怎样交互和分配职责
职责链/命令/解释器/迭代器/中介者/备忘录/观察者/状态/策略/模板方法/访问者