首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >任何OOP设计模式在某种程度上代表了所有可靠的OOP设计原则?

任何OOP设计模式在某种程度上代表了所有可靠的OOP设计原则?
EN

Software Engineering用户
提问于 2014-09-05 01:46:18
回答 1查看 2.6K关注 0票数 1

我正试图在一个培训机构教授一门面向对象的设计原理课程。我还想教学生一些面向对象的设计模式,如工厂,单件和其他。我知道实体原则和面向对象设计模式之间没有1比1的匹配,但我想向学生们介绍一种模式,它包含了所有的实体设计原则。

有什么想法吗?

我真的在努力适应观察者的模式,但想要保持它符合所有坚实的原则。

EN

回答 1

Software Engineering用户

回答已采纳

发布于 2014-09-05 06:08:19

社区中最流行的设计模式之一是战略模式。是的,如果您围绕这个模式构建了一些示例代码,您可以演示所有的实心原则:

  • 当每个策略子类只负责一个任务,而“上下文”类不承担属于策略类的职责时,S=就会被实现。
  • O=您可以在之后添加新策略(“开放供扩展”),而不需要更改上下文的内部结构(“为修改而关闭”)
  • L=这意味着使用策略接口定义的语义正确地实现策略子类,而不是改变任何子类中的语义。当子类实现策略接口时,LSP将不会实现,这种方式破坏了使用策略的上下文的各个部分。
  • 当策略基类只提供一个小的、单一用途的接口(比如一个"execute“方法)时,I=就会实现。
  • D=上下文完全依赖于抽象的策略接口,它从外部获得具体的“注入”策略(例如,在构建时),并且不对例如一组固定的子类或特定子类的可用性作出任何假设。

请注意,模式本身并不保证您的代码是可靠的,更重要的是,坚实的原则帮助您正确地实现该模式。你可以考虑向你的学生展示正确的应用坚实原则的例子,也可以考虑在一个策略模式的背景下展示反例,显示违反这五项原则的代码。或者更好:让这成为他们的练习。

票数 15
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/255425

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档