摘要:
纵向关系:继承(泛化):子类is a 父类。鸟和动物实现:唐老鸭和说话横向关系:强弱程度依次为:组合>聚合>关联>依赖依赖:依赖:使用关系(工具)。代码中实现依赖关系时,通常将一个类的对象作为另一个类的作方法参数、方法中的局部变量、或者静态方法调用。单向。动物和水关联:结构关系(来往)。代码中实现关联关系时,通常将一个类的对象作为另一个类的属性。单向、双向。1对多,多对多,1对1。企鹅和气候复合@class聚合:has a(有的关系)。整体和部分不具同一生命周期。代码中实现关联关系时,通常将一个类的对象作为另一个类的属性。雁群和大雁组合(强聚合):has a(有的关系)。整体 阅读全文
摘要:
用处:当需要创建很多新产品的时候可用到。中间采用了反射机制,以返回对象的形式实现。一、定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类。二、何时适⽤工⼚方法 1、编译时⽆法准确预期要创建的对象的类; 2、类想让其子类决定在运行时创建什么; 3、类有若干... 阅读全文
摘要:
将低层(即没有复杂逻辑的)东西抽象出来当接口,让其去和高层发生关系。定义:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。问题由来:类A直接依赖类B,假如要将类A改为依赖类C,则必须通过修改类A的代码来达成。这种场景下,类A一般是高层模块,负责复杂的业务逻辑;类B和类C是低层模块,负责基本的原子操作;假如修改类A,会给程序带来不必要的风险。解决方案:将类A修改为依赖接口I,类B和类C各自实现接口I,类A通过接口I间接与类B或者类C发生联系,则会大大降低修改类A的几率。 依赖倒置原则基于这样一个事实:相对于细节的多变性,抽象的东西要稳定的多。以抽象为基础搭 阅读全文