预测可变性和封装可变性

原创 2006年05月22日 12:02:00

    设计模式的核心思想就是"预测可变性和封装可变性"                                                                                             

下面说说我对封装可变性的体会吧,所谓封装可变性,就是有这样的效果,当需求变更或者设计变更的时候,需要对这个模块进行修改,但是不影响他的调用模块和被调用模块.   一般来说都不影响调用模块的了,除非是数据耦合.这种设计方法是比较糟糕的.  而对调用模块,要看调用模块A该变更模块B的关系吧.  如果是聚合关系 A包含B,B影响A只是通过public把接口暴露出去,如果在B中做到修改而不修改public函数的参数,并且参数的意义不变(这个很重要,有的人为了方便,参数不该,但是参数所指的意义改了.Oh ,my god!那是一场恶梦!!!),则A是不需要进行改动.这需要在B中预测到变化性,定义好接口,使入口参数能够处理以后的变化.

    例子以后再举,吃饭先

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

(转)设计模式-封装可变性

最难的不是理解设计模式,而是在实际项目中灵活应用它们,设计模式看似简单,用起来却不知从何下手。理论是用来实践的,实践才能出真理。设计模式属于OO的一部分, Gof的23种模式只不过是设计模式的沧海一粟...

String型的不可变性

  • 2014-06-30 15:02
  • 17KB
  • 下载

不变性和可变性.pdf

  • 2008-05-25 23:46
  • 170KB
  • 下载

JAVA不可变类(immutable)机制与String的不可变性

一、不可变类简介 不可变类:所谓的不可变类是指这个类的实例一旦创建完成后,就不能改变其成员变量值。如JDK内部自带的很多不可变类:Interger、Long和String等。 可变类:相对于不可变...

可变性部件模型源代码

  • 2014-05-13 14:15
  • 22.36MB
  • 下载

Effective Java 第十五条:使可变性最小化

复数类Complex: public final class Complex { private final double re; private final double im; ...

String的不可变性

String的不可变性的理解

c#中的协变性与逆变性,Part Three:方法组转换的可变性

上一次我讨论了C#中的数组协变性如何会产生Bug(Java也是,还有很多其他语言)今天,我们讲讲一个C#2.0提供的健壮的可变性:从方法组到委托的转换。这是一种更复杂的可变性,所以我需要仔细地讲讲。假...

Java性能优化(13):支持非可变性

一个非可变类是一个简单的类,它的实例不能被修改。每个实例中包含的所有信息都必须在该实例被创建的时候就提出来,并且在对象的整个生存期内固定不变。Java平台库包含许多非可变类,其中有String、原语类...

线程安全及不可变性

原文地址:http://ifeve.com/thread-safety-and-immutability/ 原文链接 作者:Jakob Jenkov 译者:高嵩 校对:丁一 当多个线程...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)