zoukankan      html  css  js  c++  java
  • 设计模式概要

    一、设计模式遵循的原则

    二、UML常用知识

    三、常用设计模式简介 

    参考自:http://www.cnblogs.com/zhenyulu/category/6930.html

    一、原则

    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

  • 相关阅读:
    python內建模块之datetime
    python实现两个经纬度点之间的距离和方位角
    Python实现DBScan
    关于sru源码class Model的parameters
    pytorch之LSTM
    pytorch对可变长度序列的处理
    pytorch函数之torch.normal()
    PyTorch学习系列(九)——参数_初始化
    ubuntu16.04系统搜狗输入法的安装
    Scala 匿名函数
  • 原文地址:https://www.cnblogs.com/spirit/p/1696694.html
Copyright © 2011-2022 走看看