设计模式,六大设计原则,类的特性

简介: 国庆节没啥鸟事,把重要东西来个一遍。 风.fox类的特性封装,继承,多态设计原则设计模式的六大原则1、开闭原则(Open Close Principle)开闭原则是最基础的设计原则。 开闭原则: 对扩展开放,对修改关闭。一个软件实体需要进行扩展来实现变化,而不是通过去修改已有的代码来实现变化 软件实体: 项目或软

国庆节没啥鸟事,把重要东西来个一遍。
风.fox

类的特性

封装,继承,多态

设计原则

设计模式的六大原则

1、开闭原则(Open Close Principle)

开闭原则是最基础的设计原则。
开闭原则:

对扩展开放,对修改关闭。

一个软件实体需要进行扩展来实现变化,而不是通过去修改已有的代码来实现变化
软件实体:

项目或软件产品中按照一定的逻辑规则划分的模块
抽象和类
方法

2、单一职责原则(Single Responsibility Principle)

简称SPR。
单一职责原则:

应该有且仅有一个原因引起类的变更。即一个类只负责一项职责

3、里氏代换原则(Liskov Substitution Principle)

定义1:如果对每一个类型为 S 的对象 o1,都有类型为 T 的对象o2,使得以 T1定义的所有程序 P 在所有的对象 o1 都代换成 o2 时,程序 P 的行为没有发生变化,那么类型 S 是类型 T 的子类型。

定义2:所有引用基类的地方必须能透明地使用其子类的对象。

里氏替换原则为良好的继承定义了一个规范:

子类必须完全实现父类的方法
子类可以有自己的个性
覆盖或实现父类的方法时输入参数可以被放大
覆写或实现父类的方法输出结果可以被缩小

4、依赖倒转原则(Dependence Inversion Principle)

高层模块不应该依赖低层模块,两者都应该依赖其抽象。
抽象不应该依赖细节
细节应该依赖抽象

更加精简的定义就是“面向接口编程”–OOD(面向对象设计)的精髓之一

5、接口隔离原则(Interface Segregation Principle)

接口分为实例接口和类接口
接口隔离原则:

客户端不应该依赖他不需要的接口
类间的依赖关系应该建立在最小的接口上

一句话:建立单一接口,不要建立臃肿庞大的接口。

6、迪米特法则(Law Of Demeter)

迪米特法则(LOD)也称 最少知道原则(Least Knowledge Principle,LKP)
定义

一个对象应该对其他对象有最少的了解。

设计模式

正在码字中

单例模式

http://blog.csdn.net/fenglailea/article/details/52733653

工厂方法模式

http://blog.csdn.net/fenglailea/article/details/52733803
http://blog.csdn.net/fenglailea/article/details/52734004(工厂方法模式缩小版–简单工厂模式)

抽象工厂模式

http://blog.csdn.net/fenglailea/article/details/52734142

建造者模式

http://blog.csdn.net/fenglailea/article/details/52735743

原型模式

http://blog.csdn.net/fenglailea/article/details/52736096

模版方法模式

http://blog.csdn.net/fenglailea/article/details/52735621

代理模式

http://blog.csdn.net/fenglailea/article/details/52735924

中介者模式

http://blog.csdn.net/fenglailea/article/details/52736299

命令模式

http://blog.csdn.net/fenglailea/article/details/52739425

责任链模式

http://blog.csdn.net/fenglailea/article/details/52739708

装饰模式

http://blog.csdn.net/fenglailea/article/details/52739774

策略模式

http://blog.csdn.net/fenglailea/article/details/52739866

适配器模式

http://blog.csdn.net/fenglailea/article/details/52743207

迭代器模式

http://blog.csdn.net/fenglailea/article/details/52743225

组合模式

http://blog.csdn.net/fenglailea/article/details/52743232

观察者模式

http://blog.csdn.net/fenglailea/article/details/52743229

门面模式

http://blog.csdn.net/fenglailea/article/details/52743235

备忘录模式

http://blog.csdn.net/fenglailea/article/details/52743237

访问者模式

http://blog.csdn.net/fenglailea/article/details/52743238

状态模式

http://blog.csdn.net/fenglailea/article/details/52743240

解释器模式

http://blog.csdn.net/fenglailea/article/details/52743241

享元模式

http://blog.csdn.net/fenglailea/article/details/52743242

桥梁模式

http://blog.csdn.net/fenglailea/article/details/52743245

目录
相关文章
|
设计模式 存储 uml
C++ 设计模式实战:外观模式和访问者模式的结合使用,派生类访问基类的私有子系统
C++ 设计模式实战:外观模式和访问者模式的结合使用,派生类访问基类的私有子系统
161 1
|
设计模式 缓存 安全
【设计模式】单例模式:确保类只有一个实例
【设计模式】单例模式:确保类只有一个实例
169 0
|
9月前
|
设计模式 存储 关系型数据库
「全网最细 + 实战源码案例」设计模式——六大设计原则
本文介绍了面向对象设计中的六大原则,旨在提高软件系统的可维护性、可复用性和可拓展性。这些原则包括:开闭原则(OCP)、里氏代换原则(LSP)、依赖倒转原则(DIP)、接口隔离原则(ISP)、迪米特法则(LoD)和合成复用原则(CARP)。每项原则通过具体示例展示了如何通过抽象、多态、组合等方式降低耦合度,增强系统的灵活性与稳定性,从而提升开发效率并降低成本。
209 10
|
设计模式 SQL 安全
PHP中的设计模式:单例模式的深入探索与实践在PHP开发领域,设计模式是解决常见问题的高效方案集合。它们不是具体的代码,而是一种编码和设计经验的总结。单例模式作为设计模式中的一种,确保了一个类仅有一个实例,并提供一个全局访问点。本文将深入探讨单例模式的基本概念、实现方式及其在PHP中的应用。
单例模式在PHP中的应用广泛,尤其在处理数据库连接、日志记录等场景时,能显著提高资源利用率和执行效率。本文从单例模式的定义出发,详细解释了其在PHP中的不同实现方法,并探讨了使用单例模式的优势与注意事项。通过对示例代码的分析,读者将能够理解如何在PHP项目中有效应用单例模式。
|
设计模式 SQL 安全
PHP中的设计模式:单例模式的深入探索与实践在PHP的编程实践中,设计模式是解决常见软件设计问题的最佳实践。单例模式作为设计模式中的一种,确保一个类只有一个实例,并提供全局访问点,广泛应用于配置管理、日志记录和测试框架等场景。本文将深入探讨单例模式的原理、实现方式及其在PHP中的应用,帮助开发者更好地理解和运用这一设计模式。
在PHP开发中,单例模式通过确保类仅有一个实例并提供一个全局访问点,有效管理和访问共享资源。本文详细介绍了单例模式的概念、PHP实现方式及应用场景,并通过具体代码示例展示如何在PHP中实现单例模式以及如何在实际项目中正确使用它来优化代码结构和性能。
181 2
|
设计模式 Java 测试技术
Java设计模式-UML与设计原则(1)
Java设计模式-UML与设计原则(1)
111 1
|
设计模式 存储 算法
PHP中的设计模式:策略模式的深入解析与应用在软件开发的浩瀚海洋中,PHP以其独特的魅力和强大的功能吸引了无数开发者。作为一门历史悠久且广泛应用的编程语言,PHP不仅拥有丰富的内置函数和扩展库,还支持面向对象编程(OOP),为开发者提供了灵活而强大的工具集。在PHP的众多特性中,设计模式的应用尤为引人注目,它们如同精雕细琢的宝石,镶嵌在代码的肌理之中,让程序更加优雅、高效且易于维护。今天,我们就来深入探讨PHP中使用频率颇高的一种设计模式——策略模式。
本文旨在深入探讨PHP中的策略模式,从定义到实现,再到应用场景,全面剖析其在PHP编程中的应用价值。策略模式作为一种行为型设计模式,允许在运行时根据不同情况选择不同的算法或行为,极大地提高了代码的灵活性和可维护性。通过实例分析,本文将展示如何在PHP项目中有效利用策略模式来解决实际问题,并提升代码质量。
|
设计模式 Go
Go语言设计模式:使用Option模式简化类的初始化
在Go语言中,面对构造函数参数过多导致的复杂性问题,可以采用Option模式。Option模式通过函数选项提供灵活的配置,增强了构造函数的可读性和可扩展性。以`Foo`为例,通过定义如`WithName`、`WithAge`、`WithDB`等设置器函数,调用者可以选择性地传递所需参数,避免了记忆参数顺序和类型。这种模式提升了代码的维护性和灵活性,特别是在处理多配置场景时。
154 8
|
设计模式 安全 Java
Java中的单例模式是一种设计模式,它保证一个类只有一个实例,并提供一个全局访问点
Java单例模式确保类仅有一个实例,并提供全局访问点。常见实现包括: - 饿汉式:静态初始化,线程安全。 - 懒汉式:延迟初始化,需同步保证线程安全。 - 双重检查锁定:优化懒汉式,减少同步开销。 - 静态内部类:延迟加载,线程安全。 - 枚举:简洁线程安全,不适用于复杂构造。 - 容器实现:如Spring框架,用于依赖注入。选择依据需求,如延迟加载、线程安全和扩展性。
157 10
|
设计模式 前端开发 JavaScript
React开发设计模式及原则概念问题之什么是HOC(Higher-order component),HOC遵循的设计原则都有哪些
React开发设计模式及原则概念问题之什么是HOC(Higher-order component),HOC遵循的设计原则都有哪些