设计模式笔记资源

  

  基本原则

  单一职责原则 / Single Responsibility Principle

  一个类只负责一项职责。

  开闭原则Open Closed Principle

  对扩展开放,对修改关闭。解决方法:抽象化。

  里氏代换原则 Liskov Substitution Principle

  任何基类可以出现的地方,子类也可以出现。子类可以扩展父类的功能,但不能改变父类原有的功能。例子:正方形和长方形。

  依赖倒转原则 Dependency Inversion Principle

  高层次的模块不应该依赖于低层次的模块,两者都应该依赖于抽象接口。抽象接口不应该依赖于具体实现。而具体实现则应该依赖于抽象接口。解决方法:不要依赖模块,改为依赖接口,而模块去实现接口。

  接口隔离原则 Interface Segregation Principle

  客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。解决方法:把臃肿的接口拆分成独立的几个接口。

  合成/聚合复用 Composite/Aggregate Reuse Principle

  尽量使用合成/聚合,尽量不要使用类继承

  

  • 只有“Is-A”关系才符合继承关系,“Has-A”关系应当用聚合来描述。
  • 永远不会出现需要将子类换成另外一个类的子类的情况。如果不能肯定将来是否会变成另外一个子类的话,就不要使用继承。
  • 如果一个子类需要大量的置换掉超类的行为,那么这个类就不应该是这个超类的子类。
  • 只有在分类学角度上有意义时,才可以使用继承。不要从工具类继承。

  最少知识原则 Principle of Least Knowledge一个对象应该对其他对象保持最少的了解。

  解决方法:两个类之间不要直接通信,可以通过第三方转发。(解耦)

  创建型

  创建型模式(Creational Pattern)对类的实例化过程进行了抽象,能够将软件模块中对象的创建和对象的使用分离。为了使软件的结构更加清晰,外界对于这些对象只需要知道它们共同的接口,而不清楚其具体的实现细节,使整个系统的设计更加符合单一职责原则。[/url]

  结构型

  结构型模式(Structural Pattern)描述如何将类或者对象结合在一起形成更大的结构,就像搭积木,可以通过简单积木的组合形成复杂的、功能更为强大的结构。

  • 适配器 Adapter 【学习难度:★★☆☆☆,使用频率:★★★★☆】
  • 桥接 Bridge 【学习难度:★★★☆☆,使用频率:★★★☆☆】
  • 组合 Composite 【学习难度:★★★☆☆,使用频率:★★★★☆】
  • 装饰 Decorator 【学习难度:★★★☆☆,使用频率:★★★☆☆】
  • 外观 Facade 【学习难度:★☆☆☆☆,使用频率:★★★★★】
  • 享元 Flyweight 【学习难度:★★★★☆,使用频率:★☆☆☆☆】
  • 【袋里】 Proxy 【学习难度:★★★☆☆,使用频率:★★★★☆】

  行为型

  行为型模式(Behavioral Pattern)是对在不同的对象之间划分责任和算法的抽象化。行为型模式不仅仅关注类和对象的结构,而且重点关注它们之间的相互作用。

  通过行为型模式,可以更加清晰地划分类与对象的职责,并研究系统在运行时实例对象之间的交互。在系统运行时,对象并不是孤立的,它们可以通过相互通信与协作完成某些复杂功能,一个对象在运行时也将影响到其他对象的运行。

评论

Popular Posts

《活法》作者:[日]稻盛和夫 pdf下载

浩方对战平台优化版 V2.05 部分去除浩方广告和弹出窗口

麦当劳免费Wifi帐号密码及连接设置

Microsoft 365安装包下载(Office桌面应用)

中兴ZTE H618B 路由器固件刷机备忘

Debian 12上使用Nginx代理TCP流量,并配置IPv6白名单访问控制

日本人真实的生活水平,警醒所有的中国人(转帖)

50条有趣的QQ签名大搜集

css横向纵向自动撑开的九宫格模块原型