标签:architecture language-agnostic java design-patterns
我知道我们在编程中所做的一切都可以描述为设计模式(即使抽象方法也具有称为模板方法的设计模式)
public class Guicer extends AbstractModule {
private static Injector injector = Guice.createInjector(new Guicer());
public static void setInjector(Injector injector) {
Guicer.injector = injector;
}
public static <T> T getInstance(Class<T> c) {
return injector.getInstance(c);
}
@Override
protected void configure() {
}
}
此代码中使用了哪些设计模式?我想调用该类GuiceStateHolder,但是我不确定.
解决方法:
好吧,我称之为:
private static Injector injector = Guice.createInjector(new Guicer());
public static void setInjector(Injector injector) {
Guicer.injector = injector;
}
只写全局变量.
和这里:
public static <T> T getInstance(Class<T> c) {
return injector.getInstance(c);
}
您将实例方法替换为全局函数.因此,您基本上有了一个全局变量,任何人都可以写,但是您只能在其上调用一个方法.由于喷油器的界面更多,因此可能是某种受限制的外观.
但是它们比模式更成语-模式还可以根据期望的行为来描述其试图实现的目标,而成语则是您如何在代码中进行某些工作.
除非它是与单个习惯用法有很强联系的模式,否则无法对代码中的模式进行反向工程.
标签:architecture,language-agnostic,java,design-patterns 来源: https://codeday.me/bug/20191106/1999772.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。