模式词语

本文探讨了软件设计中常见的模式词语,这些词语通常暗示着特定的设计模式,如Factory、Proxy、Builder等,并解释了它们如何被应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

很多类的命名都会隐喻着某些模式,我把这些命名称为模式词语 。让我们看看有哪些词语经常会作为模式词语吧

 

和模式同名的词语

  • Factory:满大街的Factory,就不说了
  • Proxy:偶尔用,比如java.lang.reflect.Proxy
  • Builder:常用,但是并不意味着使用Builder模式,所有创建某一类东西的类都可能叫做Builder
  • Visitor:经典的同名词语。几乎所有用到Visitor模式的类都以Visitor结尾
  • Adapter:偶尔用用,例如eclipse里面的Adaptable
  • Decorator:偶尔用用,可能是这个名字太长了,大家不喜欢用
  • Command:偶尔用,可能大家都喜欢用Action

和模式不同名的词语

  • Action:经典的Command模式,所有叫Action的类几乎都是用Command模式
  • Inteceptor:通常和Command模式相关,外面加了一个隔离用来实现拦截器
  • Xxxable:通常情况下有两类模式使用able结尾。一类是Command模式,比如Executable,显然会有一个方法叫execute(),典型的Command模式。还有一种通常是Adapter模式,表示此类实现这个接口会有某个特征
  • Utils:这些类常常构造函数私有化,所有方法静态化---那显然是Singleton
  • Aware:常用于Adapter模式,例如ApplicationContextAware
  • Context:这个情况比较复杂,可以认为是某一层次上signleton对象,比如:全局的Context(ApplicationContext),线程级的Context
  • Event/listener:标准的Observer模式
  • impl:极其简单的Template模式
  • Filter:过滤器常常会用到Chain of Responsibility模式

...先想到这么多,还有的以后补充...

<think>好的,我现在需要帮助用户解决在Vim命令行模式下使用正则表达式查找特定词语的问题。首先,我得回想一下Vim的相关知识,确保自己记得正确。用户提到的是命令行模式下的搜索,这应该指的是在普通模式下输入“/”进入搜索模式的情况,对吧?不过有时候用户可能对模式区分不太清楚,需要确认一下。 接下来,用户需要的是使用正则表达式查找单词的教程。根据用户提供的引用,特别是引用[1]提到了Vim的帮助文件,比如`:h pattern`,这可能是一个重要的资源。我需要先确认Vim的正则表达式语法,因为Vim的正则和其他工具如grep或Perl的有所不同,比如默认的magic模式。 用户的问题可能涉及到如何正确转义特殊字符,比如是否需要使用反斜杠或者不同的定界符。例如,查找单词边界可能需要使用`\<`和`\>`,而其他系统中可能用`\b`。这时候需要指出Vim中的特殊语法。 然后,我需要考虑用户可能的实际用例。例如,他们可能想精确匹配整个单词,避免部分匹配,这时候需要使用单词边界。或者他们可能需要区分大小写,这时候可能需要使用`\C`或`\c`来强制区分或忽略大小写。引用[3]提到了grep的选项,但Vim中可能有不同的实现方式,比如在模式中使用修饰符。 另外,用户提供的引用[4]提到正则表达式用于校验输入格式,这可能意味着用户需要确保他们的搜索模式准确无误。因此,在回答中需要强调如何构造正确的正则表达式,避免常见错误。 可能还需要提到一些实际例子,比如搜索“the”这个单词,但不要匹配到“there”或“other”中的部分。这时候应该用`/\<the\>`。同时,是否需要考虑多行匹配或者全局搜索?不过用户的问题看起来是基础搜索,可能不需要涉及高级选项。 此外,用户可能需要知道如何启用非常magic模式(very magic)来简化正则表达式,比如使用`\v`前缀,这样一些符号如`+`、`()`就不需要转义了。例如,`/\v<word>`可能更简洁。但需要解释清楚这些模式的区别,避免混淆。 最后,确保回答结构清晰,分步骤说明,比如进入搜索模式、输入正则表达式、使用单词边界、处理大小写等,并给出示例。同时,引用相关的帮助文档和用户提供的引用资料,如引用[1]和[4],来增强答案的可信度。</think>在Vim命令行模式下使用正则表达式搜索特定词语,可按照以下步骤操作: ### 1. 进入搜索模式 在普通模式下按`/`键进入正向搜索,按`?`进入反向搜索。此时底部命令行会显示`/`或`?`提示符[^1][^4]。 ### 2. 输入正则表达式 **精确匹配单词**(避免部分匹配): ```vim /\<your_word\> ``` 例如查找`hello`但不匹配`helloworld`: ```vim /\<hello\> ``` - `\<`表示单词开头边界 - `\>`表示单词结尾边界[^4] **匹配大小写**: - 强制忽略大小写:在模式后加`\c`(如`/word\c`) - 强制区分大小写:在模式后加`\C`(如`/WORD\C`) ### 3. 特殊字符转义 若搜索包含正则元字符(如`.`、`*`、`$`),需用反斜杠转义: ```vim /\$50\.00 # 查找$50.00 ``` ### 4. 使用非常魔法模式模式前加`\v`启用"very magic"模式,简化正则语法: ```vim /\v(\d{4})-(\d{2})-(\d{2}) # 匹配日期YYYY-MM-DD ``` ### 5. 查看帮助文档 Vim内置完整的正则表达式文档,输入命令查看: ```vim :help pattern # 查看正则语法 :help usr_27.txt # 查看搜索与替换教程 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值