zoukankan      html  css  js  c++  java
  • 设计模式网上资料整合理解——结构型模式

    桥接模式(Bridge)
          桥接模式用于解决系统多维度变化的问题,将抽象部分与实现部分分离,使它们都可以独立的变化。(参见对Bridge模式的理解
    结构图:
          
    生活中的例子:
          
          

    组合模式(Composite)

    意图:
          将对象组合成树形结构以表示“部分
    -整体”的层次结构。Composite模式使得用户对单个对象和组合对象的使用具有一致性。[GOF 《设计模式》]
    生活中的例子:
          组合模式最佳例子是.NET的控件树,具体参考张逸的《设计之道》,或看.NET控件源码。
    结构图:
          

    享原模式(FlyWeight)
          当在一个线程中需要创建一个类的很多实例,而这个类的实例之间只是某些状态不同,就可以考虑是否可以将类中实例化后不同的部分提取出来,以使剩余的部分得以共享,减少内存开销。这种解决方法就是享原模式,它主要是解决上面提到的性能问题。

    结构图:
          

    代理模式(Proxy)

    结构图:
          
    代码:

    using System;

    namespace DoFactory.GangOfFour.Proxy.Structural
    {
      
      
    // MainApp test application 

      
    class MainApp
      
    {
        
    static void Main()
        
    {
          
    // Create proxy and request a service 
          Proxy proxy = new Proxy();
          proxy.Request();

          
    // Wait for user 
          Console.Read();
        }

      }


      
    // "Subject" 

      
    abstract class Subject 
      
    {
        
    public abstract void Request();    
      }


      
    // "RealSubject" 

      
    class RealSubject : Subject
      
    {
        
    public override void Request()
        
    {
          Console.WriteLine(
    "Called RealSubject.Request()");
        }

      }


      
    // "Proxy" 

      
    class Proxy : Subject
      
    {
        RealSubject realSubject;

        
    public override void Request()
        
    {
          
    // Use 'lazy initialization' 
          if (realSubject == null)
          
    {
            realSubject 
    = new RealSubject();
          }


          realSubject.Request();
        }
      
      }

    }

  • 相关阅读:
    PHP 操作redis常用方法代码
    PHP 大型网站 高并发大流量解决方案
    Nginx 负载均衡
    maven中mirror与repositories的关系
    Java事件机制---自定义事件
    sql优化几个方面
    临时表的概念
    sql产生临时表
    MySQL rows
    工厂模式 https://www.jianshu.com/p/6dfb5b66d088
  • 原文地址:https://www.cnblogs.com/end/p/729285.html
Copyright © 2011-2022 走看看