Dojo
话题
新佳
订阅
极道
元认知
元逻辑
元设计
元编程
元语言
GoF设计模式教程
神奇的7+/-2法则:在没有充分理由的情况下不要让程序员的大脑超载 - javiercasas
心理学中有一篇很古老但非常重要的论文:乔治·米勒的著作《神奇的数字 7 +/- 2;我们信息加工能力的局限》,它测量了大脑处理信息的极限,并给出一个数字:人脑中可以同时晃动5到9个概念。在不得重复练习的情形下(如看电视字幕),在短时记忆内,一般人平均只能记下 7 个项目(如 7 位数字、7
GRASP 之信息专家模式 - Kamil Grzybek
问题:将责任分配给对象的基本原则是什么?解决方案:将责任分配给具有实现它所需信息的类。 在下面的示例中, Customer类引用了所有客户 订单,因此很自然地负责计算订单的总价值:
毒丸模式(Poison Pill)
Poison Pill是已知的预定义的数据项,它为分布式消费使用过程提供优雅的关闭。
生产者-消费者模式(Producer Consumer)
目的生产者—消费者设计模式是一种经典的并发模式,它通过将工作识别与工作执行分离来减少生产者和消费者之间的耦合。
观察者模式(Observer)
目的定义对象之间的一对多依赖关系,以便在一个对象更改状态时,自动通知并更新其所有依赖项。
代理模式(Proxy)
目的为另一个对象提供代理或占位符以控制对它的访问。说明想象一座塔,当地巫师去那里学习他们的法术。象牙塔只能通过代理访问,这确保只有前三个巫师可以进入。这里的代理代表了塔台的功能,并添加了访问控制。
反应堆模式(Reactor)
目的Reactor设计模式处理由一个或多个客户端并发传递给应用程序的服务请求。应用程序可以注册特定的处理程序来处理特定事件,这些处理程序由reactor调用。事件处理程序的调度由管理已注册事件处理程序的启动调度程序执行。服务请求的解复用由同步事件解复用器执行。
裸对象架构模式(Naked Objects)
目的Naked Objects架构模式非常适合快速原型化。使用这个模式,您只需要编写域对象,其他一切都是由框架自动生成的。
私有类数据(Private Class Data)
目的私有类数据设计模式旨在通过限制属性的可见性来减少属性的暴露。它通过将类属性封装在单个数据对象中来减少类属性的数量。
空对象模式(Null Object)
目的在大多数面向对象的语言中,例如Java或C#,引用可能为空。在调用任何方法之前,需要检查这些引用以确保它们不为空,因为通常不能对空引用调用方法。不使用空引用来传达对象的缺失(例如,不存在的客户),而是使用实现预期接口但其方法体为空的对象。与工作默
页面对象模式(Page Object)
目的Page Object封装了UI,隐藏了应用程序的底层UI小部件(通常是Web应用程序),并提供了特定于应用程序的API,以允许操作测试所需的UI组件。在这样做时,它允许测试类本身关注测试逻辑。
部分响应模式(Partial Response)
目的根据需要从服务器发送部分响应。客户端将指定服务器所需的字段,而不是提供所有详细信息。
基于队列的负载均衡(Queue based load leveling)
问题云中的许多解决方案都涉及运行调用服务的任务。在这种环境中,如果服务遭受间歇性重负载,则可能导致性能或可靠性问题。如果同时运行的多个任务使用相同的服务,则可能难以预测在任何给定时间点服务可能经受的请求量。服务可能会遇到需求高峰,导致服务过载并无法及
承诺模式(Promise)
目的承诺(Promise)代表的是一种值的代理,这种值在承诺被创建时并不一定是已知的。它允许您将依赖的承诺与异步操作的最终成功值或失败原因相关联。承诺是一种编写异步代码的方法,它仍然显示为以同步方式执行。
属性模式(Property)
目的使用现有对象作为父对象创建对象和新对象的层次结构。
原型模式(Prototype)
目的指定使用原型实例创建的对象类型,并通过复制此原型来创建新对象。说明还记得多莉吗?被克隆的羊!简而言之,基于现有对象通过克隆创建对象。维基百科说
对象池(Object Pool)
目的当对象的创建成本很高并且仅在短时间内需要它们时,使用对象池模式是有利的。对象池为实例化对象提供缓存,以跟踪哪些对象正在使用以及哪些对象可用。
Object Mother
使用分隔的构建器和工厂接口定义不可变内容的工厂。
上页
下页