草庐IT

anti-patterns

全部标签

责任链模式(Chain of Responsibility Pattern)

责任链模式说明责任链模式(ChainofResponsibilityPattern)属于行为型模式,它是指使多个对象都有机会处理请求,将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。从而避免请求的发送者和接收者之间的耦合关系。结构责任链模式主要角色如下:抽象处理者(Handler):定义处理请求的接口,并维护了下一个处理者的引用;具体处理者(ConcreteHandler):根据需求实现处理请求的接口,如果处理不了,则交个下一个处理者处理。代码案例抽象处理者(Handler)/***@program:chain*@description:抽象员工类,抽象处理者(Hand

【云原生技术】K8S报错 “0/1 nodes are available: 1 node(s) didn‘t match pod anti-affinity rules. preemption:

要解决“0/1nodesareavailable:1node(s)didn’tmatchpodanti-affinityrules.preemption:0/1nodesareavailable:1Nopreemptionvictimsfoundforincomingpod.”的问题,需要对Kubernetes集群进行一些检查和可能的调整。下面是操作步骤的详细指南:1.检查Pod反亲和性规则首先,检查造成问题的Pod的反亲和性设置。您需要找到该Pod的定义文件(YAML文件),然后查看affinity.podAntiAffinity部分。例如:affinity:podAntiAffinity:

java - @DateTimeFormat(pattern ="yyyy-MM-dd") 使用 Spring Mvc Rest Service 给出 "error 400 request syntactically incorrect"

这个问题在这里已经有了答案:Therequestsentbytheclientwassyntacticallyincorrect.-SpringMVC+JDBCTemplate(6个答案)关闭7年前。我无法让它工作:@RequestMapping(value="/people",method=RequestMethod.GET,produces="application/json")public@ResponseBodyListsearchPerson(@RequestParam(value="birthDay",required=false)@DateTimeFormat(patte

java - bloated class 和 tagged class 有什么区别?

正如我在Effectivejava中读到的那样Bloatedclasshierarchiescanleadtobloatedclassescontainingmanymethodsthatdifferonlyinthetypeoftheirarguments,astherearenotypesintheclasshierarchytocapturecommonbehaviors.在Link中Abloatedclassoftenhasmanyspecialcases:attributesorbehaviorvalidforsomeinstancesbutnotothers.Oftenpr

java - 每个抛出异常的语句的 try/catch 是否被视为反模式?

我目前正在审查同事的Java代码,我看到很多情况下,每个可能抛出异常的语句都被封装在自己的try/catch中。catchblock都执行相同的操作(哪个操作与我的问题无关)。对我来说,这似乎是一种代码味道,我确实记得读过它是一种常见的反模式。但是我找不到任何关于此的引用资料。对于每条抛出异常的语句,try/catch都被视为反模式吗?支持这一点的论据是什么?构造示例:(与原始问题无关,所以请不要介意这个例子的其他问题,因为它只是为了说明我的意思。)publicintfoo(){intx,y=7;try{x=bar(y);}catch(SomeExceptione){return0;}

java - Pattern.asPredicate 中的错误?

给定以下字符串列表:ListprogLangs=Arrays.asList("c#","java","python","scala");和一个应该匹配4个字母的小写字符串的正则表达式模式。Patternp=Pattern.compile("[a-z]{4}");现在我想找到适合模式p的progLangs元素。老办法:for(Stringlang:progLangs){if(p.matcher(lang).matches()){System.out.println(lang);}}我得到了预期的结果:java但是当我尝试使用Java8流实现相同的目的并使用Pattern.asPredic

Java - 解析字符串 - String.split() 与 Pattern 和 Matcher

给定一个包含表示专有名词和类别/描述对的逗号分隔列表的字符串,使用String.split()与Pattern&Matcher方法查找特定专有名词并提取相关类别的优缺点是什么/描述对?haystack字符串格式不会改变。它将始终包含以下形式的逗号分隔数据PROPER_NOUN|类别/描述两种方法的共同变量:Stringhaystack="EARTH|PLANET/COMFORTABLE,MARS|PLANET/HARDTOBREATHE,PLUTO|DWARF_PLANET/FARAWAY";Stringneedle="PLUTO";Stringresult=null;使用String

java 比较两个 Pattern 对象

有没有一种简单的方法来比较两个Pattern对象?我有一个Pattern,它使用正则表达式"//"编译以检查代码中的注释。由于有几种正则表达式来描述评论,我想找到一种方法来区分它们。如何实现?Pattern类没有实现equals方法。 最佳答案 您可以通过比较调用pattern()或toString的结果来比较Pattern对象,但这并不能满足您的要求(如果我正确理解你的问题)。具体来说,这会比较传递给Pattern.compile(...)工厂方法的字符串。但是,这没有考虑单独传递给模式字符串的标志。没有简单的方法可以测试两个不同

Java反模式名称?包含对象的对象包含...等等

是否有包含对象的对象的名称或特定规则......等等。我正在处理一个复杂的系统,该系统通常有运行5-10层深的对象。我听说这样做的一个原因是一次将大量数据从服务器传递到客户端,有没有更好的方法来做到这一点?编辑:好像是几个反模式的组合。应该清理域模型,以下反模式是气味:TrainWreckPattern和Everythingbutthekitchen-sinkmap 最佳答案 我不知道这种对象树的名称。但是一个众所周知的反模式是TrainWreck模式,当代码使用过多的方法链接时会出现这种模式。objA.getChildB().ge