几种JAVA 设计模式:
1.适配器:将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
- public class ServerOne implements PlayerCount {
- private ServerFirst mServerFirst;
- public ServerOne() {
- mServerFirst = new ServerFirst();
- }
- @Override
- public String getServerName() {
- return "一服";
- }
- @Override
- public int getPlayerCount() {
- return mServerFirst.getOnlinePlayerCount();
- }
- }
2.组合:将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。
3.策略:它定义了算法家庭,分别封装起来。让它们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。
4.单例:保证一个类仅有一个实例,并提供一个访问它的全局访问点。
- public static LogUtil getInstance() {
- if (sLogUtil == null) {
- synchronized (LogUtil.class) {
- if (sLogUtil == null) {
- sLogUtil = new LogUtil();
- }
- }
- }
- return sLogUtil;
- }
5.模板方法: 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
- public abstract class Formatter {
- public String formatBook(Book book, int format) {
- beforeFormat();
- String result = formating(book);
- afterFormat();
- return result;
- }
- protected void beforeFormat() {
- System.out.println("format begins");
- }
- protected abstract String formating(Book book);
- protected void afterFormat() {
- System.out.println("format finished");
- }
- }
- YAMLFormatter yamlFormatter = new YAMLFormatter();
- String result = yamlFormatter.formatBook(book);
- System.out.println(result);
总结:详情见郭霖的博客