• 设计模式笔记[四种模式+四种原则]


    A.简单工厂 :用一个单独的类来做这个创建实例的过程,这就是工厂
    不符合开-封闭原刚,每次扩展都要更改工厂类 [计算器]
    1.cbxType.Items.AddRange(new object[] { "正常收费","打八折","打七折","打五折"});
      
    B,策略模式:定义多种算法,并分别封装,之间可以互相替换,算法的变化不影响到客户;[收银]
    [context]用一个concretestrategy来配置维护一个对strategy对象的引用。
    [strategy]策略类,定义所有支持算法的公用接口。
    [concretestrategyx]具体策略类,封装具体的算法和行为。
     比较:简单认识两个类,策略认识一个类,比简单偶合度更低。
    1单一职责原则:就一个类而言,应该仅有一个引起它变化的原因
    2开放封闭原则:扩展开放,个性封闭 核心 可维护,可扩展,可复用,灵活性好。
    3信赖倒转原则:高层模块,低层模块,细节 依赖抽象[针对接口编程]
    4里氏代换原则:子类必须能够替换父类 。
     [由于里氏代换原则,才使开放封闭成为可能]
    C,装饰模式,动态的给一个对象增加一些额外的职责(为已有功能动态的添加更多功能)[穿什么有这么重要]
     Component 对象接口:动态添加职责,ConcreteComponent:具体对象,添加职责,Decorator:装饰抽象类,从外类来扩展Component
     [eg.用于],当系统需要新功能的时候,把每个要装饰的功能放在单独的类中,并让这个类包装它所要装饰的对象。

    D,代理模式,为其它对象提供一种代理以控制对这个对象的访问.
    [subject]定义了realsubject和Proxy的共用接口。使得在任何使用realsubject的地方都可以使用proxy.
    [realsubject]定义proxy所代表的真实实体.
    [Proxy]保存一个引用使得代理可以访问实体,并使得一个与subject接口相同的接口,这样,代理就可以用来代替实体.
     [eg.用于]1)远程代理.webservice,
          2)虚拟代理,浏览器来优化下载,图片一张一张显示出来。     
          3)安全代理。不同的访问权限
          4)智能指引,访问一个对象前,检查是否锁定,以确保其它对象不能改变它


    作者:水木    
     
  • 相关阅读:
    AJAX请求 $.post方法的使用
    通过jQuery Ajax使用FormData对象上传文件
    iframe跨域访问
    js编码解码
    ajax头像上传
    无边框窗体和用户控件以及权限
    只开启一个窗体和进程以及多线程的操作
    通过一个窗体操作另一个窗体
    流和打印控件用法
    listview和简单的记事本操作
  • 原文地址:https://www.cnblogs.com/hsapphire/p/1268129.html
Copyright © 2020-2023  润新知