• 设计模式


    创建型模式

    创建型模式有5种,不含简单工厂

    简单工厂示例(静态工厂)

    DataSource ds=DataSource Factory.getInstance("mysql");

    工厂方法示例

    使用数据源服务 获取数据源

    几个角色: 抽象工厂、具体工厂、抽象产品、具体产品

    对应:DataSource(数据源信息)、MySqlDataSource(Mysql数据源)、Connection (连接), MysqlConnection( 连接)

    // 获取Mysql连接

    (1)DataSource ds=new MySqlDataSource();

    (2)Connection conn=ds.getConnection();

    //若改为 oracle

    (1)改为 DataSource ds=new OracleDataSource();

    抽象工厂示例

    具体的工厂类 可以持有多种操作

    DataSource ds=new MySqlDataSource();

    //多种产品

    Connection conn=ds.getConnection();

    ConnInfo info= ds.TestConnection();

    建造者模式

    class Person{
        //必填参数  姓名、性别
        private String name;
        private String gender;
        //可选参数 身高、体重、年龄
        private String height;
        private String weight;
        private String age;
     	
        //构造方法
        public Person(Builder builder){
            name=builder.name;
            gender=builder.gender;
            height=builder.height;
            weight=builder.weight;
            age=builder.age;
        }
       
        class static Builder{
            private final String name;
        	private final String gender;
        	private String height;
        	private String weight;
        	private String age;
            //必填参数
            public Person(String name,String gender){
            	this.name=name;
            	this.gender=gender;
        	}
            //非必填参数
            public Builder height(String val){
                this.height=val;
                return this;
            }
            public Builder weight(String val){
                this.weight=val;
                return this;
            }
            public Builder age(String val){
                this.age=val;
                return this;
            }
            //构造对象
            public Person build(){
                return new Person(this); 
            }
        }
        
        
    }
    
    //调用时
    Person p=new Person("张飞","男").height("187").weight("155").age("34").build();
    

    原型模式

    从原型拷贝副本,对副本进行操作

    Object obj=new Object();
    Object copy=obj.clone();
    

    单例模式

    维持一个单例对象

    class Connection{
    
    	private static Connection conn;
    
    	private Connection();
    
    	public Connection getInstance(){
    		if(conn==null){
                conn=new Connection();
            }		
            return conn;
    	}
    
    }
    
    
    

    行为型模式

    模板方法模式

    不变的行为提取到超类,对改变的行为让子类重写

    策略模式

    代理模式

  • 相关阅读:
    vector与iterator的一些用法
    动态规划 hdu 1024
    dfs bfs hdu 1045
    hdu 2795
    poj 2828
    线段树染色
    线段树比大小
    A
    ?线程局部变量
    JRE、JDK、JVM 及 JIT
  • 原文地址:https://www.cnblogs.com/mznsndy/p/16379919.html
Copyright © 2020-2023  润新知