Dojo
话题
新佳
订阅
极道
元认知
元逻辑
元设计
元编程
元语言
GoF设计模式教程
数据结构而非算法是编程的核心 - theartofmachinery
这是2006年Linus Torvalds的一句话:
事件聚合器(Event Aggregator)
目的当客户端想要订阅事件时,具有大量对象的系统可能导致复杂性。客户端必须单独查找和注册每个对象,如每个对象有多个事件,则每个事件都需要单独订阅。事件聚合器充当许多对象的单个事件源。它注册了许多对象的所有事件,允许客户端只注册聚合器。
事件队列(Event Queue)
目的如果您的可访问性资源有限(例如:音频或数据库),则事件队列是一种很好的模式,但是您需要处理所有想要使用它的请求。它将所有请求放入队列并异步处理它们。当事件是队列中的下一个事件时为其提供资源,同时将其从队列中移除。
功能特性切换(Feature Toggle)
目的用于根据属性或分组切换代码执行路径。允许发布,测试和推出新功能。如果需要,允许快速切换回旧功能。应该注意的是,这种模式很容易引入代码复杂性。还有一个值得关注的问题是,切换最终要逐步淘汰的旧特性永远不会被删除,这会导致代码冗余和可维护性增加。
事件溯源(Event Sourcing)
目的不只是在域中存储数据的当前状态,而是使用只追加存储来记录对该数据所采取的全部操作。存储作为记录系统,可用于实现域对象。这可以简化复杂域中的任务,避免同步数据模型和业务域,同时提高性能,可伸缩性和响应能力。它还可以为事务数据提供一致性,并维护完整的审计流程和历史记录以支持修正操作。
工厂方法(Factory Method)
目的定义一个用于创建对象的接口,但让子类决定要实例化哪个类。Factory Method允许类将实例化推迟到子类。说明铁匠制造武器。精灵需要精灵武器,兽人需要兽人武器。根据顾客,召唤正确类型的铁匠。<
外观模式(Facade)
意图为子系统中的一组接口提供统一接口。Facade定义了一个更高级别的接口,使子系统更易于使用。解释金矿是如何运作的?”矿工们去金矿挖金子!”你说。之所以如此是因为你使用的是一个简单的接口,金矿是外部提供,在它内部必须做很多事才能实现。到复杂子系统的这个简单接口是一个
事件驱动架构(Event Driven Architecture)
目的使用事件驱动架构将对象的状态更改发送并通知给其他应用程序。
基于事件的异步模式(Event-based Asynchronous)
目的基于事件的异步模式提供了多线程应用程序的优势,同时隐藏了多线程设计中固有的许多复杂问题。使用支持此模式的类可以允许您:在不中断应用程序的情况下,“在后台”执行下载和数据库操作等耗时的任务。同时执行多个操作,每个操作完成时接收通知。
流畅接口(Fluent Interface)
目的Fluent Interface提供易于阅读,流畅的接口,通常模仿领域特定的语言。使用此模式会产生几乎可以像人类语言一样阅读的代码。 执行可以使用任何一个实现F
半同步/半异步(Half-Sync/Half-Async)
目的半同步/半异步模式将同步I / O与系统中的异步I / O分离,以简化并发编程工作,而不会降低执行效率。
Factory Kit
目的使用分离的生成器和工厂接口定义不可变内容的工厂。
扩展对象(Extension objects)
目的预计将来需要扩展对象的接口。其他接口由扩展对象定义。
享元模式(Flyweight)
目的使用共享可以有效地支持大量细粒度对象。说明炼金术士的商店里摆满了魔法药水。许多药水是相同的,因此不需要为每个药水创建新的对象。相反,一个对象实例可以表示多个货架项目,因此内存占用空间很小<
Execute Around
目的Execute Around惯用法是将用户从业务方法之前和之后应该始终执行的某些操作中解放出来。一个很好的例子是资源分配和释放,使用户只能指定如何处理资源。
前端控制器模式(Front Controller)
目的为网站的所有请求引入一个通用处理程序。通过这种方式,我们可以在一个地方封装通用功能,如安全性,国际化,路由和日志记录。
Flux模式
目的Flux避开MVC而支持单向数据流。当用户与视图交互时,视图会通过中央调度程序将操作传播到包含应用程序数据和业务逻辑的各个存储,这会更新受影响的所有视图。
解释器模式(Interpreter)
目的给定一种语言,定义其语法的表示,以及使用该表示来解释该语言中的句子的解释程序。
上页
下页