zoukankan      html  css  js  c++  java
  • java 设计模式之单利模式以及代理模式(静态)

    1:单利模式:

    public class Singleton {

        private static Singleton uniqueInstance = null;

     

        private Singleton() {

           // Exists only to defeat instantiation.

        }

     

        public static Singleton getInstance() {

           if (uniqueInstance == null) {

               uniqueInstance = new Singleton();

           }

           return uniqueInstance;

        }

        // Other methods...

    }

     

     

    代理模式(静态):

     package com;  
          
          
        /** 
         * 车站接口-【抽象角色】 
         *  
         * @author abing 
         *  
         */  
        interface Station {  
            void sellTicks();// 卖票  
            void transport();// 运输乘客  
        }  
          
        /** 
         * 火车站实现类-【具体角色】 
         *  
         * @author abing 
         *  
         */  
        class TrainStationImpl implements Station {  
          
            @Override  
            public void sellTicks() {  
                System.out.println("TrainStation  sell tickets");  
          
            }  
          
            @Override  
            public void transport() {  
                System.out.println("TrainStation  transport passenger");  
                  
            }  
        }  
          
        /** 
         * 该类做为火车站的一个代理直接供客户端调用-【代理角色】 
         *  
         * @author abing 
         *  
         */  
        class StationProxy implements Station {  
            Station sta = new TrainStationImpl();  
          
            @Override  
            public void sellTicks() {  
                sta.sellTicks();//代理类中调用真实角色的方法。  
            }  
            public void otherOperate() {  
                System.out.println("do some other things...");  
            }  
            @Override  
            public void transport() {  
                System.out.println("StationProxy can not transport");  
            }  
        }  
          
        /** 
         * 客户端测试类 
         *  
         * @author abing 
         *  
         */  
        public class StaticProxyDemo {  
            public static void main(String[] args) {  
                Station station = new StationProxy();//客户端直接操作代理类,避免了客户端与真实类的直接交涉  
                station.sellTicks();  
            }  
          
        } 

     

     

  • 相关阅读:
    游戏大厅升级日记 第3天
    GamePlatform 2.0 b的数据库脚本
    会xiaotie的一个TCP问题
    求助,基于WCF的聊天室,在用户非法掉线后,不能将Disconnected事件通知到Server
    SQL Server 聚合函数 (方差和标准差)
    体验了一把vs2008
    老罗语录打包下载(保证能下载)
    局域网单独一台机器无法ping通网关故障的解决方法
    vs2005中遇到的一个奇怪的错误 
    Page.RegisterClientScriptBlock和Page.RegisterStartupScript有何区别
  • 原文地址:https://www.cnblogs.com/yujian-bcq/p/3443744.html
Copyright © 2011-2022 走看看