我需要一些资源来讨论如何将软件设计为可扩展的,即让其他人可以编写添加功能的附加组件/插件.
您有什么推荐的吗?那里有讨论这个主题的书吗?
我更喜欢那些简短而重要的东西; 一点理论和一堆具体的例子.
我不是针对特定语言,我希望能够理解核心思想,以便我可以用任何语言实现它.
出于同样的原因,我宁愿不使用其他人构建的框架(除非框架不是非常高级,即不会隐藏太多),目前我只想教育自己主题和实验以各种方式实现它.此外,框架通常假定用户对该主题的了解.
UPDATE
我不是在询问OOP或者是否允许我的类被继承.我所说的是设计一个将部署在系统上的应用程序,以便在部署之后可以通过第三方附加组件进行扩展.
例如,Notepad ++有一个插件架构,您可以将.dll文件放在plugins文件夹中,并为不存在的应用程序添加功能,例如颜色选择或片段插入,或许多其他内容(广泛的功能).
我刚开始做测试驱动开发,我想知道RhinoMock,TypeMock和NUnit的内置模拟之间的主要区别?
任何信息将不胜感激!
...开放/封闭原则规定"软件实体(类,模块,功能等)应该是可以扩展的,但是关闭以进行修改"......这在生产环境中特别有价值,在这种环境中,源代码发生了变化可能需要代码审查,单元测试和其他此类程序才能使其符合产品使用要求:遵守原则的代码在扩展时不会发生变化,因此不需要这样的努力.
所以,我在正确的阅读它,如果有OCP将是有价值的无自动化单元测试,但不一定,如果有是?或维基百科的文章错了吗?