We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
C#设计模式学习笔记
设计模式:每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。-Christopher Alexander 设计模式描述了软件设计过程中某一类常见问题的一般性的解决方案。
面向对象设计模式描述了面向对象设计过程中,特定场景下,类与相互通信的对象之间常见的组织关系。 侧重面向对象设计模式,其他模式还有很多具体的分类,比如分布式方面的设计模式,并且设计模式也在不断发展,目前 已经出现了很多的设计模式,这些只是早期的设计模式,比较基础的设计模式! 设计模式与面向对象: "好的面向对象设计":应对变化,提高复用的设计。 1,面向对象设计模式解决的是类与相互通信的对象之间的组织关系,包括它们的角色、职责、协作方式几个方面。 2,面向对象设计模式不像算法技巧,可以照搬照用,它是建立在对面向对象的纯熟、深入的理解的基础上的经验性认识。掌握面向对象设计模式的 前提是首先掌握面向对象。
各种面向对象编程语言相互有别,但都能看到它们对面向对象三大机制的支持,即:封装,继承,多态 封装:隐藏内部实现 继承:复用现有代码 多态:改写对象行为 重新认识面向对象: 1,对于前面的例子,从宏观层面上看,面向对象的构建方式更能适应软件的变化,能将变化所带来的影响减为最小。 2,从微观层面来看,面向对象的方式更强调各个类的“责任”,新增类型不会影响原来类型的代码实现。 对象是什么? 1,从概念层面讲,对象是某种拥有责任的抽象; 2,从规格层面讲,对象是一系列可以被其他对象使用的公共接口; 3,从语言实现层面讲,对象封装了代码和数据。 有了这些认识后,怎样才能设计”好的面向对象“ 1,遵循一定的面向对象设计原则 2,熟悉一些典型的面向对象设计模式 从设计原则到设计模式: 1,针对接口编程,而不是针对实现编程 客户无需知道所使用对象的特定类型,只需要知道对象拥有客户所期望的接口; 2,首先使用对象组合,而不是类继承 类继承通常为“白箱复用”,对象组合通常为黑箱复用。继承在某种程度上破坏了封装性,子类父类耦合度高;而对象组合则只要求被组合的对象 具有良好定义的接口,耦合度低。 3,封装变化点 使用封装来创建对象之间的分界层,让设计者可以在分界层的一侧进行修改,而不会对另一侧产生不良的影响,从而实现层次间松耦合。 4,使用重构得到模式 设计模式的使用不宜先入为主,一上来就使用设计模式是对设计模式的最大误用。没有一步到位的设计模式。敏捷软件开发实践提倡的 Refactoring to Patterns是目前普遍公认的最好的使用设计模式的方法。 几条更具体的设计原则: 1,单一职责原则 一个类应该仅有一个引起它变化的原因 2,开放封闭原则 类模块应该是可扩展的,但是不可修改(对扩展开放,对更改封闭) 3,Liskov替换原则 子类必须能够替换它们的基类 4,依赖倒置原则 高层模块不应该依赖低层模块,二者都应该依赖于抽象。 抽象不应该依赖于实现细节,实现细节应该依赖于抽象。 5,接口隔离原则 不应该强迫客户程序依赖于它们不用的方法 总结: 设计模式描述了软件设计过程中某一类常见问题的一般性解决方案。面向对象设计模式描述了面向对象设计过程中, 特定场景下,类与相互通信的对象之间常见的组织关系。 深刻理解面向对象是学好设计模式的基础,掌握一定的面向对象设计原则才能把握面向对象设计模式的精髓,从而实现 灵活运用设计模式。 使用重构得到模式,敏捷软件开发提倡的Refactoring to pattern 是目前普遍公认的最好的使用设计模式的方法。
The text was updated successfully, but these errors were encountered:
iterator
Sorry, something went wrong.
No branches or pull requests
C#设计模式学习笔记
设计模式:每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。-Christopher Alexander
设计模式描述了软件设计过程中某一类常见问题的一般性的解决方案。
面向对象设计模式描述了面向对象设计过程中,特定场景下,类与相互通信的对象之间常见的组织关系。
侧重面向对象设计模式,其他模式还有很多具体的分类,比如分布式方面的设计模式,并且设计模式也在不断发展,目前
已经出现了很多的设计模式,这些只是早期的设计模式,比较基础的设计模式!
设计模式与面向对象:
"好的面向对象设计":应对变化,提高复用的设计。
1,面向对象设计模式解决的是类与相互通信的对象之间的组织关系,包括它们的角色、职责、协作方式几个方面。
2,面向对象设计模式不像算法技巧,可以照搬照用,它是建立在对面向对象的纯熟、深入的理解的基础上的经验性认识。掌握面向对象设计模式的
前提是首先掌握面向对象。
The text was updated successfully, but these errors were encountered: