<commit_before>设计模式分为三种类型，共23种：

创建型模式：单例模式、抽象工厂模式、建造者模式、工厂模式、原型模式。

结构型模式：适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。

行为型模式：模版方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、职责链模式(责任链模式)、访问者模式。<commit_msg>Design Principle.<commit_after>设计模式分为三种类型，共23种：

创建型模式：单例模式、抽象工厂模式、建造者模式、工厂模式、原型模式。

结构型模式：适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。

行为型模式：模版方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、职责链模式(责任链模式)、访问者模式。

7种常用的面向对象设计原则

| 设计原则名称 | 定 义 |
| --- | --- |
| 单一职责原则 (Single Responsibility Principle, SRP) | 一个类只负责一个功能领域中的相应职责 |
| 开闭原则 (Open-Closed Principle, OCP) | 软件实体应对扩展开放，而对修改关闭 |
| 里氏代换原则 (Liskov Substitution Principle, LSP) | 所有引用基类对象的地方能够透明地使用其子类的对象 |
| 依赖倒转原则 (Dependence Inversion Principle, DIP) | 抽象不应该依赖于细节，细节应该依赖于抽象 |
| 接口隔离原则 (Interface Segregation Principle, ISP) | 使用多个专门的接口，而不使用单一的总接口 |
| 合成复用原则 (Composite Reuse Principle, CRP) | 尽量使用对象组合，而不是继承来达到复用的目的 |
| 迪米特法则 (Law of Demeter, LoD) | 一个软件实体应当尽可能少地与其他实体发生相互作用 |
{'fraction_non_alphanumeric': 0.1351931330472103, 'fraction_numerical': 0.00536480686695279, 'mean_word_length': 8.520408163265307, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 1, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3320262', 'n_tokens_mistral': 715, 'n_tokens_neox': 827, 'n_words': 53}