PLC结构化文本设计模式——设计模式(Design Patterns)

PLC Structured Text Design Patterns

PLC结构化文本设计模式——设计模式(Design Patterns)

简介

设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。Java 设计模式简介|菜鸟教程

设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。项目中合理地运用设计模式可以完美地解决很多问题,每种模式在现实中都有相应的原理来与之对应,每种模式都描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决方案,这也是设计模式能被广泛应用的原因。Java 设计模式简介|菜鸟教程

在 1994 年,由 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 四人合著出版了一本名为 Design Patterns - Elements of Reusable Object-Oriented Software(中文译名:设计模式 - 可复用的面向对象软件元素) 的书,该书首次提到了软件开发中设计模式的概念。Java 设计模式简介|菜鸟教程

四位作者合称 GOF(四人帮,全拼 Gang of Four)。他们所提出的设计模式主要是基于以下的面向对象设计原则。Java 设计模式简介|菜鸟教程

  • 对接口编程而不是对实现编程。
  • 优先使用对象组合而不是继承

设计模式的类型

序号 类型 模式
1 创建型模式(Creational Patterns) - 单例模式(Singleton Pattern)
- 工厂方法模式(Factory Method Pattern)
- 抽象工厂模式(Abstract Factory Pattern)
- 建造者模式(Builder Pattern)
- 原型模式(Prototype Pattern)
2 结构型模式(Structural Patterns) - 适配器模式(Adapter Pattern)
- 桥接模式(Bridge Pattern)
- 组合模式(Composite Pattern)
- 装饰器模式(Decorator Pattern)
- 外观模式(Facade Pattern)
- 享元模式(Flyweight Pattern)
- 代理模式(Proxy Pattern)
3 行为型模式(Behavioral Patterns) - 观察者模式(Observer Pattern)
- 策略模式(Strategy Pattern)
- 命令模式(Command Pattern)
- 中介者模式(Mediator Pattern)
- 备忘录模式(Memento Pattern)
- 模板方法模式(Template Method Pattern)
- 迭代器模式(Iterator Pattern)
- 状态模式(State Pattern)
- 责任链模式(Chain of Responsibility Pattern)
- 访问者模式(Visitor Pattern)
- 解释器模式(Interpreter Pattern)

设计模式七大原则

  • 1.开闭原则(Open Close Principle)

开闭原则的意思是:对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。简言之,是为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类,后面的具体设计中我们会提到这点。Java 设计模式简介|菜鸟教程

  • 2.里氏代换原则(Liskov Substitution Principle)

里氏代换原则是面向对象设计的基本原则之一。 里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。LSP 是继承复用的基石,只有当派生类可以替换掉基类,且软件单位的功能不受到影响时,基类才能真正被复用,而派生类也能够在基类的基础上增加新的行为。里氏代换原则是对开闭原则的补充。实现开闭原则的关键步骤就是抽象化,而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范。Java 设计模式简介|菜鸟教程

  • 3.依赖倒转原则(Dependence Inversion Principle)

这个原则是开闭原则的基础,具体内容:针对接口编程,依赖于抽象而不依赖于具体。Java 设计模式简介|菜鸟教程

  • 4.接口隔离原则(Interface Segregation Principle)

这个原则的意思是:使用多个隔离的接口,比使用单个接口要好。它还有另外一个意思是:降低类之间的耦合度。由此可见,其实设计模式就是从大型软件架构出发、便于升级和维护的软件设计思想,它强调降低依赖,降低耦合。Java 设计模式简介|菜鸟教程

  • 5.迪米特法则,又称最少知道原则(Demeter Principle)

最少知道原则是指:一个实体应当尽量少地与其他实体之间发生相互作用,使得系统功能模块相对独立。Java 设计模式简介|菜鸟教程

  • 6.合成复用原则(Composite Reuse Principle)

合成复用原则是指:尽量使用合成/聚合的方式,而不是使用继承。Java 设计模式简介|菜鸟教程

  • 7.单一职责原则

控制类的粒度大小,将对象解耦,提高其内聚性。

结束语

前段时间在学习C#设计模式,对面向对象设计模式有个大致的了解,但并不通透,想着将学习内容以博客形式记录下来,顺便写个代码加深理解。网上高级语言面向对象设计模式有很多资料和博客,所以我就不去凑这个热闹了,反观PLC面向对象编程还是比较冷清的,于是便做个决定写一篇关于PLC面向对象的博客。

博客内容我会尽量从PLC自动化设备角度编写代码示例,我也看过国内外大佬写的PLC代码包括Twincat3和Codesys,他们的例程大多以实际生活或者纯软件方面编写示例。其实面向对象编程刚开始就是比较抽象难以理解,作为之前从事过PLC工作的牛马还是能够感同身受的。

目前是C#上位机软件开发工作者,博客可能会偶尔断更,但是若有空会继续更新。

设计模式是面向对象开发过程中面临的一般问题的解决方案,所以只要编程语言支持面向对象,基本上就可以套用经典的设计模式,设计模式并不局限某一种高级编程语言,反而编程语言只是一种工具,一个人既可以说中文也可以说英文甚至可以说日语还可以用肢体语言,问题是如何用这些语言表达自己的想法很重要,在学习编程的时候一定牢记这一点。不要把它(语言)作为编程的全部,学习编程思想/思路才是关键。

博客基础概念网上有非常优秀的文章和解释,现成的篇幅我就直接引用并附上文章链接,写作重心放在PLC代码上。

posted @ 2025-09-12 15:28  J_Sheng  阅读(32)  评论(0)    收藏  举报