我不明白好莱坞原则
I don't understand the Hollywood Principle
对不起我的英语。
我在阅读“Head First Design Patterns”一书时偶然发现了这个原则。我看到其他人在 Whosebug 上问了同样的问题和一些文章,但我还是不明白。
谁能用最简单的术语给我解释一下?
我读过的大部分示例都假设 reader 已经使用支持 IoC 的框架,例如 Spring。我以前从未使用过那些框架,因为我还是个初学者。
谢谢。
好莱坞原则 - 这是什么意思?
意思是高层模块应该调用低层模块。
遵循这个原则,我们的代码就趋向于松散耦合。
松散耦合的代码意味着我们没有对其他 classes 或对象的不必要引用。它有助于软件的可维护性。
实施
可以使用事件或回调轻松实现好莱坞原则。
观察者模式是一个众所周知的实施好莱坞原则的例子。
另一种利用好莱坞原则的设计模式是模板模式。
在模板模式中,超级 class 定义了控制流。
然后子 classes 实现抽象方法,或 plug-in 代码。
框架也是好莱坞原则的著名例子。
在框架中,我们注入我们的代码。我们可以子 class 或 plug-in 我们的 classes,框架调用它们来完成工作。
例子
假设我们正在创建一个文字处理器应用程序。我们将有两个 classes,Document
和 Page
.
这里,Document
是高层模块,Page
是低层模块。
这是因为一个 Document
可以有一个或多个 Page
.
如果我们想要re-render我们的页面,Page
不应该调用Document
对象。
对于 Document
中的任何更改,它应该调用 Page
到 re-render 它。
Document
可以使用事件或回调将 Page
个对象通知给 re-render。
此外,如果我们在这里遵循依赖倒置原则,Document
不应该直接依赖 Page
,而是使用一些抽象。
对不起我的英语。
我在阅读“Head First Design Patterns”一书时偶然发现了这个原则。我看到其他人在 Whosebug 上问了同样的问题和一些文章,但我还是不明白。
谁能用最简单的术语给我解释一下?
我读过的大部分示例都假设 reader 已经使用支持 IoC 的框架,例如 Spring。我以前从未使用过那些框架,因为我还是个初学者。
谢谢。
好莱坞原则 - 这是什么意思?
意思是高层模块应该调用低层模块。
遵循这个原则,我们的代码就趋向于松散耦合。 松散耦合的代码意味着我们没有对其他 classes 或对象的不必要引用。它有助于软件的可维护性。
实施
可以使用事件或回调轻松实现好莱坞原则。
观察者模式是一个众所周知的实施好莱坞原则的例子。
另一种利用好莱坞原则的设计模式是模板模式。 在模板模式中,超级 class 定义了控制流。 然后子 classes 实现抽象方法,或 plug-in 代码。
框架也是好莱坞原则的著名例子。 在框架中,我们注入我们的代码。我们可以子 class 或 plug-in 我们的 classes,框架调用它们来完成工作。
例子
假设我们正在创建一个文字处理器应用程序。我们将有两个 classes,Document
和 Page
.
这里,Document
是高层模块,Page
是低层模块。
这是因为一个 Document
可以有一个或多个 Page
.
如果我们想要re-render我们的页面,Page
不应该调用Document
对象。
对于 Document
中的任何更改,它应该调用 Page
到 re-render 它。
Document
可以使用事件或回调将 Page
个对象通知给 re-render。
此外,如果我们在这里遵循依赖倒置原则,Document
不应该直接依赖 Page
,而是使用一些抽象。