# learning-design **Repository Path**: THuiLiu/learning-design ## Basic Information - **Project Name**: learning-design - **Description**: 设计原则、设计模式、uml - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-12-15 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 设计模式学习 ## 介绍 设计原则、设计模式、uml ## 项目模块布局 ### design-principle 设计原则 - open-close-principle:开闭原则 ### design-pattern 设计模式 - factory-pattern:工厂模式 - 简单工厂模式 Simple Factory Pattern; 又称为静态工厂方法(Static Factory Method)模式 - 工厂方法模式 Factory Method Pattern - 抽象工厂 Abstract Factory Pattern ### uml 统一建模语言 ## 7种原则 为了提高软件系统的可维护性和可复用性,增加软件的可扩展性和灵活性,程序员应尽量遵循7种设计原则。 7种设计原则如下: - 开闭原则 - 里氏替换(代替)原则 - 迪米特原则(最少知道原则) - 单一职责原则 - 接口分隔原则 - 依赖倒置原则 - 组合/聚合复用原则 这7种原则之间并不是互相孤立的,彼此间存在一定的联系,一个可以是另外一个原则的加强或基础。违反其中某一个时,可能就同时违反了其余的一些原则。 ## 创建型模式 创建型模式的主要关注点是“怎样创建对象?”,它的主要特点是`“将对象的创建与使用分离”`。 这样可以降低系统的耦合度,使用者不需要关注对象的创建细节,对象的创建由相关的工厂来完成。 就像我们去商场购买商品时,不需要知道商品是怎么生产出来一样,因为它们由专门的厂商生产。 创建型模式分为以下几种: - 单例(Singleton)模式:某个类只能生成一个实例,该类提供了一个全局访问点供外部获取该实例,其拓展是有限多例模式。 - 原型(Prototype)模式:将一个对象作为原型,通过对其进行复制而克隆出多个和原型类似的新实例。 - 工厂方法(FactoryMethod)模式:定义一个用于创建产品的接口,由子类决定生产什么产品。 - 抽象工厂(AbstractFactory)模式:提供一个创建产品族的接口,其每个子类可以生产一系列相关的产品。 - 建造者(Builder)模式:将一个复杂对象分解成多个相对简单的部分,然后根据不同需要分别创建它们,最后构建成该复杂对象。 以上 5 种创建型模式,除了工厂方法模式属于类创建型模式,其他的全部属于对象创建型模式