草庐IT

反模式

全部标签

c# - 如何避免服务定位器反模式?

我正在尝试从抽象基类中删除服务定位器,但我不确定用什么来替换它。这是我得到的伪示例:publicabstractclassMyController:Controller{protectedIKernelkernel;publicMyController(IKernelkernel){this.kernel=kernel);}protectedvoidDoActions(Type[]types){MySpecialResolverresolver=newMySpecialResolver(kernel);foreach(vartypeintypes){IMyServiceInterfac

c# - 具有领域驱动设计的存储库模式会成为反模式吗?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭9年前。社区在4个月前审查了是否重新打开此问题,然后将其关闭:原始关闭原因未解决Improvethisquestion首先,我想澄清一下,我是领域驱动设计的新手,我问这个问题是因为我读过一些叫做贫血领域模型的东西。大多数时候我在使用Repository模式时会看到以下内容。我们有一个通用存储库我们的模型只包含一组公共(public)属性,但不包含任何方法(因此根据DDD的定义,它变成了贫血领域模型),因为这里的存储库类处理该实体或模型

c# - 深层嵌套字典是反模式吗?

我有一个结构,可以很容易地使用三层嵌套字典来表示,就像这样privatestaticDictionary>>PrerenderedTemplates;结构可能会像这样使用PrerenderedTemplates[instanceID][templategroup][templatepart]现在,我意识到这段代码很难阅读,因为从定义语句中看,您无法判断它的用途。我真正看到的唯一优势是将其更改为Dictionary是可读性。将每个嵌套转换成它自己的类(例如classPrerenderedTemplate{}classTemplateGroup{}classTemplatePart{})会

javascript - React 反模式,在另一个组件的定义中定义了一个组件

我已经阅读了React中的嵌套组件。我尝试了这个例子并注意到每次我更新父组件(todolist)的状态。DOM树重新渲染整体而不是添加新的。我的问题是:这是我们应该避免的反模式吗?constTodoList=({todos,onTodoClick})=>{constTodo=({completed,text,onClick})=>{return({text});};returntodos.map(todo=>onTodoClick(todo.id)}/>);};这是我的测试 最佳答案 问题是,当你两次调用TodoList时,你会得到

javascript - Redux:在 reducer 函数中调用 store.getState(),这是一种反模式吗?

我想知道,有时我有一个reducer需要来自另一个reducer的信息。例如我有这个reducer:import*asActionTypesfrom'../actions/action_type_constants';importKeyCodefrom'keycode.js/index';import{store}from"../index";import{mod}from"../pure_functions";exportfunctionselectedCompletion(state=0,action){if(action.type===ActionTypes.arrowKeyPr

php - 为什么服务定位器是以下示例中的反模式?

我有一个MVC应用程序,该应用程序具有定义明确的领域模型、实体、存储库和服务层。为了避免必须在我的Controller中实例化我的服务类,从而避免将我的Controller与不适合它们的逻辑混为一谈,我创建了一个助手,它充当一种ServiceLocator的角色。,但在阅读了一下之后,我意识到许多开发人员:http://blog.tfnico.com/2011/04/dreaded-service-locator-pattern.htmlhttp://blog.ploeh.dk/2010/02/03/ServiceLocatorIsAnAntiPattern.aspxhttp://un

php - 设计模式——反模式调用超——避免或保留

我最近注意到在某些情况下我真正喜欢做的事情(调用super)是一种反模式。(http://en.wikipedia.org/wiki/Call_super)所以我的问题是:Howtodothefollowingthing(我们大多数人都需要的一个基本的东西,给一个对象添加一些细节)。我将向保存在对象var中的数组添加一个新元素:_data['newDetail']="Ipiicaei";}}classBextendsA{//blablabla//Overrideconstructor,Ineedtoaddonemoredetailforthisclasspublicfunction__

java - 数据库作为 IPC 反模式

我编写了一个分层Web应用程序,它包含一个与Java服务交互的富Web客户端(PHP)。Web客户端托管在apache服务器上,java服务运行在同一台物理机上(重申一下:整个应用程序、客户端和服务都运行在同一台物理机上)。用户请求-->DBRequestHandler-->StoreResultinDB-->WebClient使用结果(AJAX)更新页面。客户端和服务之间的通信使用关系数据库来传递消息。java服务有一个单线程轮询器,它查找并处理来自客户端的任何消息/请求。该系统有效,但我对我的设计选择没有信心。有人对这个策略有什么意见吗?我读过使用数据库作为IPC反模式是不好的做法

java - 原型(prototype)是反模式吗?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭7年前。Improvethisquestion当JoshuaBloch提到Cloneable接口(interface)在Java中被破坏时,为什么使用clone()方法来促进对象创建的Prototype模式不被视为Java开发中的反模式?"It'sashamethatCloneableisbroken,butithappens."-JoshuaBloch

java - 返回实例引用的 setter 。模式还是反模式?

我在考虑代码结构,在考虑setter。这些曾经是void方法,那么为什么不使用一些可能的返回值来启用一些新的代码结构呢?我的想法是将所有属性setter从void更改为实例引用,这样我们就可以按顺序执行setter或其他操作。这是一个例子:publicclassMyClass{privateintfoo;privateStringbar;publicMyClasssetFoo(intfoo){this.foo=foo;returnthis;}publicMyClasssetBar(Stringbar){this.bar=bar;returnthis;}}然后在代码的其他地方我们可以做: