当前位置: 首页 > 编程笔记 >

浅谈C#设计模式之开放封闭原则

窦伟
2023-03-14
本文向大家介绍浅谈C#设计模式之开放封闭原则,包括了浅谈C#设计模式之开放封闭原则的使用技巧和注意事项,需要的朋友参考一下

在软件设计模式证这种不能修改,但可以扩展的思想也是最重要的设计原则,他就是开放-封闭原则 (OCP)

对于程序设计而言,怎么的设计才能面对需求的改变却可以保持相对的稳定,从而可以使得系统可以再第一个版本的基础上不断的推出新版本呢?
答案是在程序设计的时候使用开放封闭原则。
 
但是设计的同时,绝对对修改的关闭是不可能的,无论模块是多么的封闭,都存在一些无法对之封闭的变化,既然不可以完全的封闭,设计人员必须对他设计的模块应该对哪种变换的封闭做出选择,他必须猜测出最有可能发生变换的种类,然后构造抽象来隔离那些变化。

再我们最初写代码的时候,假设变化不会发生,当变化发生时我们就构造抽象类来隔离变化。
当然,不是在什么情况下应对变化都是容易的,我们希望在开发工作展开不久就知道可能发生的变化,查处可能发生变化所等待的时间越长,要创建正确的抽象就越困难。

开放封闭原则是面向对象的核心所在,遵循这个原则可以带来面向对象所谓的巨大好处,也就是可维护,可扩展,可复用,灵活性好。然而,对于应用程序中的每个部分都刻意的抽象同样不是一个i好主意,拒绝不成熟的抽象和抽象一样重要。

 类似资料:
  • 本文向大家介绍浅谈Java设计模式之开放封闭原则,包括了浅谈Java设计模式之开放封闭原则的使用技巧和注意事项,需要的朋友参考一下 写在前面 最近, 接手了一个新业务,系统的架构可圈可点。但有些地方让人望而生畏,有些代码臃肿难以维护,让人不敢恭维。于是,结合了Java的开放封闭原则,对其中一部分代码进行了重构优化。 先来看下以前系统的老代码 ShareChannelManager.java sha

  • 本文向大家介绍浅谈c#设计模式之单一原则,包括了浅谈c#设计模式之单一原则的使用技巧和注意事项,需要的朋友参考一下 单一原则: 程序设计时功能模块独立,功能单一更有助于维护和复用。 例如:个人计算机功能很多,如果想从中只拿出一个功能来制造一个新的东西是困难的。同时如果你的计算机开不机,同时你的计算器功能也不能用了。 在编程中如果一个类封装了太多功能和上面的结果是类似的。 单一职责原则 例1: 大家

  • 本文向大家介绍浅谈C#设计模式之代理模式,包括了浅谈C#设计模式之代理模式的使用技巧和注意事项,需要的朋友参考一下 代理模式是常用的结构型设计模式之一,当无法直接访问某个对象或访问某个对象存在困难时可以通过一个代理对象来间接访问,为了保证客户端使用的透明性,所访问的真实对象与代理对象需要实现相同的接口.根据代理模式的使用目的不同,代理模式又可以分为多种类型,例如保护代理、远程代理、虚拟代理、缓冲代

  • 本文向大家介绍浅谈JAVA设计模式之享元模式,包括了浅谈JAVA设计模式之享元模式的使用技巧和注意事项,需要的朋友参考一下 享元模式(Flyweight Pattern)主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式。 享元模式尝试重用现有的同类对象,如果未找到匹配的对象,则创建新对象。我们将通过创建 5

  • 介绍 原型模式(prototype)是指用原型实例指向创建对象的种类,并且通过拷贝这些原型创建新的对象。 正文 对于原型模式,我们可以利用JavaScript特有的原型继承特性去创建对象的方式,也就是创建的一个对象作为另外一个对象的prototype属性值。原型对象本身就是有效地利用了每个构造器创建的对象,例如,如果一个构造函数的原型包含了一个name属性(见后面的例子),那通过这个构造函数创建的

  • 本文向大家介绍浅谈Java设计模式系列-装饰器模式,包括了浅谈Java设计模式系列-装饰器模式的使用技巧和注意事项,需要的朋友参考一下 一、概述 装饰器模式作用是针对目标方法进行增强,提供新的功能或者额外的功能。 不同于适配器模式和桥接模式,装饰器模式涉及的是单方,和代理模式相同,而且目标必须是抽象的。 而实际上,装饰器模式和代理模式的实现方式基本一致,只在目标的存在上有些差别,这个后面我们具体讲