`
文章列表
一:简单工厂模式的实现 比如我们要描述以下三种水果:葡萄Grape,草莓Strawberry,苹果:Apple. (1)首先建立一个水果类Fruit接口,便于与其他植物区分开来. (2)让Grape,Strawberry,Apple分别实现Fruit接口 (3)再建一个生产水果的工厂FruitFact ...
迪米特法则又叫最少知识原则,就是说,一个对象应当对其他对象有尽可能少的了解. 一:狭义的迪米特法则 如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用,如果其中的一个类SomeOne需要调用另一个类Stranger的某一个方法的话,可以通过第三者Friend转发这个这个调用.这个第三者可以是以参量形式传入到当前对象方法中的对象,当前对象实例变量直接引用的对象....与依赖倒转原则互补:引入一个抽象类型引用"抽象陌生人"对象,使某人依赖于"抽象陌生人",就是把"抽象陌生人"变成朋友。 二:迪米特法则与设计模式 ...
合成/聚合复用原则经常又叫做合成复用原则,就在在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分,新的对象通过向这些对象的委派达到复用已有功能的目的,这个设计原则有另一个更加简短的表述,要尽量使用合成/聚合,尽量不要使用继承. 我们通常不在新的对象里面拥有需要的对象,而应当最好拥有对象所在的工厂,这样又把工厂模式应用过来,这是我的灵感..^-^ 一:复用的基本类型 A:合成/聚合复用,由于合成或聚合可以将已有的对象纳入到新对象中,使之成为新对象的一部分,因此新的对象可以调用已有对象的功能,这样做有下面好处: (1)新对象存取成分对象的唯一方法是通过成分对象的接口 (2)这种 ...
一:什么是接口隔离原则 A角色划分:接口隔离原则说的是使用多个专门的接口比使用单一的接口要好.将接口理解为一个类所提供的所有方法的集合,也就是一种逻辑上才存在的概念,这样的话接口的划分就带来了类型的划分,一个接口对应一个角色. B定制服务,接口隔离原则讲的就是为同一个角色提供宽窄不同的接口,以对付不同的客户端,这种办法在服务行业中叫做定制服务,如果客户端仅仅需要某一些方法的话,那么就应当提供这些需要的方法,而不要提供不需要的方法.Java中的适配器就是很好的应用了此原则. C:迪米特法则要求任何一个软件实体,除非绝对需要,不然不要与外界通信,即使要进行通信,也应当尽量限制通信的广度和深度.
三种耦合关系: 在面向对象的系统里,两个类之间可以发生三种不同的耦合关系: A:零耦合,如果两个类没有任何耦合关系,称为零耦合 B:具体耦合,具体耦合发生在两个具体的类实例之间,经由一个类对另一个具体类的直接引 ...
一什么是里氏代换原则 里氏代换原则的严格表达是:如果对每一个类型为T1的对象o1,都有类型为T2的对象o2,使得以T1定义的所有程序P在所有对象o1代换成o2时,程序P的行为没有变化,那么类型T2是类型T1的子类型. 换言之,一个软件褓如果使用的量个基类的话,那么一定适用其子类,而且它根本不能察觉出基类对象和子类对象的区别.反过来不成立:如果一个软件实体用的是子类的话,那它不一定适用于基类. 二:Java语言对里氏代换的支持 在编译时期,Java语言编译器会检查一个程序是否符合里氏代换,里氏代换要求凡是基类型使用的地方,子类型一定适用,因此子类必须具备基类的全部接口。举例而言,一个基类B ...
抽象类仅提供一个类型的部分实现,它可以有实例变量以及多个构造子。一个抽象类不会有实例,它的构造子不能被客户端调用来创建实例,但它的构造子可以被其子类调用,从而使一个抽象类的所有子类都可以有一些共同的实 ...
一:什么是接口 一个接口只有方法的特征或一些常量,而没有方法的实现,因此这些方法在不同的地方被实现时,可以具有完全不同的行为。一个类可以实现多个接口但不能继承多个类,所以利用接口还可以实现类似多重继承 ...
一:UML主要包括如下两种图 (A)结构型图--描述系统的静态结构 类图:描述一些类,包的静态结构和它们之间的静态关系 对象图:给出一个系统中对象的快照 构件图:描述可以部署的软件构件(如jar,ejb)之间的静态关系 部署图:描述一个系统的拓扑结构 (B)行为型图--描述系统的动态性质 使用案例图:描述一系列角色和使用案例及它们之间的关系,可以用来对一个系统的最基本的行为进行建模 活动图:描述不同过程之间的动态接触,活动图是使用案例图所描述的行为的具体化 状态图:描述一系列对象的内部状态及状态的变化和转移,一个类不能有两个不同的状态图 时序图:描述不同对象之间信息的传递的时序 合作图:合作图是 ...
不变@变---软件设计的永恒之道 静@动----UML建模 可维护性&可复用性&独立 软件设计原则(善为士者不武:一个好的软件设计师在其设计的软件投入使用之后很少作大规模的修改): (1)"开-闭"原则(Open-Closed Principle) 对扩展开放,对修改关闭:即在设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展。 (用面向对象的语言来讲,不允许更改的是系统的抽象层,而允许扩展的是系统的实现层,所以,这一原则主要体现在系统接口和抽象类的设计,这个抽象层预见了所有的可能扩展,因此,在任何扩展下都不会改变,因此在任何扩展的情况下都不 ...
Global site tag (gtag.js) - Google Analytics