zoukankan      html  css  js  c++  java
  • 看 设计模式之策略模式探讨初步 有感,并摘取部份内容,学习之

    原文 http://www.cnblogs.com/changhai-xuri/archive/2006/11/24/571089.html

    使用模式最好的方式是:「把模式装进脑子中,然后在你的设计和已有的应用中,寻找何处
    可以使用这些模式。」以往是代码复用,那么现在则是经验复用。

    第一个设计原则:
       找出应用中可能需要变化之处,把它们独立出来, 不要和那些不需要变化的代码混在一起。
    也就是说: 如果每次新的需求一来, 都会变化到某方面的代码, 那么你就可以确定, 这部分的代码需要被抽出来, 和其他闻风不动的代码有所区隔。
    把会变化的部分取出并封装起来,以便以后可以轻易地扩充此部分,而不影响不需要变化的其他部分。这样的概念很简单,几乎是每个设计模式背后的精神所在。
    所有的模式都提供了一套方法让「系统中的某部分改变不会影响其他部分」。
    这样的结果如何?代码变化之后,出其不意的部分变得很少,系统变得更有弹性。

    第二个设计原则:
    针对接口编程」真正的意思是「针对超类型(supertype)编程」。
    这里所谓的「接口」有多个含意,接口是一个「概念」,也是一种Java的interface构造。你可以在不涉及Java interface的情况下,「针对接口编程」,关键就在多态。
    利用多态,程序可以针对超类型编程,执行时会根据实际状况执行到真正的行为,不会被绑死在超类型的行为上。
    「针对超类型编程」这句话,可以更明确地说成变量的声明类型,应该是超类型,通常是一个抽象类或者是一个接口,
    如此,只要是具体实现此超类型的类所产生的对象,都可以指定给这个变量;这也意味着,声明类时,不用理会以后执行
    时的真正对象类型!

    第三个设计原则
      多用组合,少用继承。
      在设计时你会发现,对象的一些行为往往易于改变,采用继承时,超类的形为特性的改变会涉及到的有子类的改变,扩展性变得不够好,
      按第一原则把这些易于变化的行为抽取出来,按第二原则采用接口来管理每一类形为,让具体的形为类去继承这些接口,
      每一种形为之间不再有关系,对于主体类涉及到哪些形为,我们就把它们组合到一起好了。这样通过组合建立起来的系统具有很大的弹性,
      我们就可以在运行时动态地改变行为,只要组合的行为对象,符合正确的接口标准即可。

  • 相关阅读:
    ASP字符串16进制互转
    LINQ Dictionary加速查询(TryGetValue)
    ASP中将UTF8格式的URL进行解码。函数
    C# 保护进程不被结束(源代码)防任务管理器结束进程
    用WebBrowser做web 打印时的权限不足。。。。
    .net 2.0 中 ‘注册为 allowDefinition='MachineToApplication' 的节是错误的’
    sql 2005 中分页
    BitComet web 插件和 flash get web 插件 对脚本的影响
    同时使用 C# and VB.NET 在 .net 2.0 中
    用触发器实现主从表关系(主表更改从表更改 )
  • 原文地址:https://www.cnblogs.com/JYun/p/573603.html
Copyright © 2011-2022 走看看