zoukankan      html  css  js  c++  java
  • 类与类关系3(UML)

    一、原则

    1、“开放--封闭”(OSP) Open-Closed Principle

    一个软件实体应当对扩展开放,对修改关闭。

    换作面向对象术语,不允许改变系统的抽象层,而允许更改系统的实现层。

    2、里氏代换原则(LSP) Liskov Substitution Principle

    子类型(subtype)必须能够替换它们的基类型。

    3、依赖倒置原则(DIP)Dependence Inversion Principle

    使细节和策略都依赖于抽象,抽象的稳定性决定了系统的稳定性。

    4、接口隔离原则(ISP)Interface Segregation Priciple

    使用多个专门的接口比使用单一的总接口更好。过于臃肿的接口是对接口的污染,不应该强迫客户依赖于它们不用的方法。

    5、合成/聚合复用原则(CARP) Composite/Aggregate Reuse Priciple

    尽量使用合成/聚合,尽量不使用继承。

    具体的讲:在一个新对象里面使用一些已有的对象,使之成为新对象的一部分,新对象通过这些对象复用已有的功能。

    6、迪米特法则(LoD) Law of Demeter 也称最少知识原则(Least Knowledge Principle)

    一个对象应当对其它对象尽可能少的了解,达到松耦合的目的。

    二、UML常用知识

    UML图形分类:

    结构型:类图/对象图/构件图/部署图

    行为型:案例图/序列图/活动图/状态图/合作图

    常用的图形是: 案例图  类图   序列图 

    类图之间的关系:

    一般化关系:表示类与类之间的继承关系,接口与接口之间的继承关系,类对接口的实现关系

    一般化

    关联:类与类之间的联接,它使一个类知道另一个类的属性和方法,普遍是单向的关联,通过箭头表示关联的方向

    关联

    聚合(共享):关联关系的一种,是强的关联关系,是整体和个体间的关系

    共享

    合成(复合):比聚合关系更强的一种关联关系,要求整体对象负责部分对象的生命周期,合成关系不能共享。

    合成

    依赖:表示类与类之间的连接,依赖总是单向的,表示一个类依赖于另一个类的定义。

    依赖

     

    常用设计模式:

    一、Simple Factory(不是GoF 23个设计模式中的一员)

     simplyFactory

    二、Factory Method  也称之为多态性工厂模式

    factoryMethodPattern

    三、Abstract Factory

     abstractfactory

    四、Singleton Pattern

    singleton

    五、Builder Pattern

    builder

    六、Prototype Pattern

    prototype

    七、Adapter Pattern

    adapter

    八、Composite Pattern

    composite

    九、Decorator Pattern

    decorator

    十、Proxy Pattern

    prototype

    十一、FlyWeight Pattern

    flyweight

    十二、Facade Pattern

    <无类型结构图>

    十三、Bridge Pattern

    bridge

    十四、China of Responsibility Pattern

    chain

    十五、Command Pattern

    CommandPattern

    十六、Observer Pattern

    ObserverPattern

    十七、Visitor Pattern

    VisitorPattern

    十八、Template Method Pattern

    TemplateMethod

    十九、Strategy Pattern

    StrategyPattern

  • 相关阅读:
    [开发笔记]-使用bat命令来快速安装和卸载Service服务
    [开发笔记]-多线程异步操作如何访问HttpContext?
    [开发笔记]-Windows Service服务相关注意事项
    [开发笔记]-VS2012打开解决方案崩溃或点击项目崩溃
    Chrome 开发者工具有了设备模拟器
    Mysql查看数据库表容量大小
    golang操作mysql数据库
    golang命令和VSCode配置
    golang广度优先算法-走迷宫
    golang爬取免费代理IP
  • 原文地址:https://www.cnblogs.com/zhangjun1130/p/1731955.html
Copyright © 2011-2022 走看看