JDK中的設計模式(17)
創建型
1)工廠方法
Collection.iterator() 由具體的聚集類來確定使用哪一個Iterator
2)單例模式
Runtime.getRuntime()
3)建造者模式
StringBuilder
4)原型模式
Java中的Cloneable
結構性
1)適配器模式
InputStreamReader
OutputStreamWriter
RunnableAdapter
2)裝飾器模式
io包 FileInputStream BufferedInputStream
3)代理模式
動態代理;RMI
4)外觀模式
java.util.logging
5)橋接模式
JDBC
6)組合模式
dom
7)享元模式
Integer.valueOf
行為型
1)策略模式
線程池的四種拒絕策略
2)模板方法模式
AbstractList、AbstractMap等
InputStream、OutputStream
AQS
3)觀察者模式
Swing中的Listener
4)迭代器模式
集合類中的iterator
5)責任鏈模式
J2EE中的Filter
6)命令模式
Runnable、Callable,ThreadPoolExecutor
7)備忘錄模式
8)狀態模式
9)訪問者模式
10)中介者模式
11)解釋器模式
?
?
Spring中的設計模式(6)
1)抽象工廠模式:
BeanFactory
2)代理模式:
AOP
3)模板方法模式:
AbstractApplicationContext中定義了一系列的抽象方法,比如refreshBeanFactory、closeBeanFactory、getBeanFactory。
4)單例模式:
Spring可以管理單例對象,控制對象為單例
5)原型模式:
Spring可以管理多例對象,控制對象為prototype
6)適配器模式:
Advice與Interceptor的適配
Adapter類接口:Target
public interface AdvisorAdapter {
boolean supportsAdvice(Advice advice);MethodInterceptor getInterceptor(Advisor advisor);
}?
MethodBeforeAdviceAdapter類,Adapter
class MethodBeforeAdviceAdapter implements AdvisorAdapter, Serializable {public boolean supportsAdvice(Advice advice) {return (advice instanceof MethodBeforeAdvice);}public MethodInterceptor getInterceptor(Advisor advisor) {MethodBeforeAdvice advice = (MethodBeforeAdvice) advisor.getAdvice();return new MethodBeforeAdviceInterceptor(advice);}
}
?
?
慢慢填坑