设计模式——结构型模型

一:目录
1. 装饰者模式(Decorator)
2. 代理模式(Proxy)
3. 组合模式(Composite)
4. 桥接模式(Bridge)
5. 适配器模式(Adapter)
6. 蝇量模式(Flyweight)
7. 外观模式(Facade)

二:详细介绍

2.1 装饰者模式(Decorator)
2.1.1 简介:
动态的给一些对象增加一些额外的职责。采用组合的方式,比继承更为灵活。
应用场景:
问题:你从何处来,要到哪里去,能够解决什么样的问题,有什么样的应用场景,和别的模式有什么区别?
2.1.2 类图:

设计模式——结构型模型_第1张图片
1. 组件接口:

public interface Component
{
   
    void operation();
}

2. 组件实现类:

public class ConcreteComponent implements Component
{
   
    public void operation()
    {
   
        // Write your code here
    }
}

3. 装饰器接口:

interface Decorator {
   
	
	void operation();
}

4. 装饰器实现类:

class ConcreteDecorator implements Decorator{
   
	
	private Component component;
	
    public void operation(){
   
        //addBehavior也可以在前面
    	component.operation();
        
        addBehavior();
    }
    
    private void addBehavior()
    {
   
        //your code
    }
}

2.1.4 实例:
Java IO设计,就用到了装饰者模式,见上边的类图(PS:拓展,看看NIO)

2.2 代理模式(Proxy)
2.2.1 简介:
代理模式(Proxy)与装饰者模式(Decorator)的区别:
装饰模式是新增行为,代理模式是控制访问

2.2.2 类图:
设计模式——结构型模型_第2张图片

2.2.3 代码:

简单静态模式代码:

public class ProxyDemo {
   
    public static void main(String args[]){
   
        Subject subject = new RealSubject();
        Proxy p = new Proxy(subject);
        p.request();
    }
}
interface Subject {
   
    void request();
}
class RealSubject implements Subject{
   
    public void request(){
   
        System.out.println("request");
    }
}
class Proxy implements Subject{
   
    private Subject subject;
    public Proxy(Subject subject){
   
        this.subject = subject;
    }
    public void request(){
   
        System.out.

你可能感兴趣的:(学习笔记,设计模式,java,结构型模式)