oracle,design pattern