设计模式是一种思想,应该灵活运用思想而不是死记代码。学习设计模式应该首先记住两句话:
对接口编程而不是对实现编程;优先使用对象组合而不是继承。
设计的七大原则:
开闭原则:软件实体应当对扩展开放,对修改关闭。
里氏替换原则:继承必须确保超类所拥有的性质在子类中仍然成立(继承父类而不去改变父类)。
依赖倒置原则:高层模块不应该依赖底层模块,两者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象。
单一职责原则:一个类应该有且仅有一个引起它变化的原因,否则类应该被拆分。
接口隔离原则:一个类对另一个类的依赖应该建立在最小的接口上。
迪米特法则:只与你的直接朋友交谈,不跟“陌生人”说话。
合成复用原则:软件复用时,要尽量先使用组合或者聚合等关联关系来实现,其次才考虑使用继承关系来实现。
设计模式的基石:
封装 继承 多态
顺序 判断 循环
设计模式分为创建型模式、结构性模式、行为型模式。
创建型模式关注怎样创建出对象
将对象的创建与使用分离开来
降低系统的耦合度
使用者无需关注对象的创建细节
- 对象的创建由相关的工厂来完成(工厂模式)
- 对象的创建由一个建造者来完成(建造者模式)
- 对象的创建由原来对象克隆完成(原型模式)
- 对象始终在系统中只有一个实例(单例模式)