软件开发设计思想与6大软件设计原则、23种设计模式目录-设计模式

本文介绍了软件开发的核心设计思想,包括可维护性、可复用性、可扩展性和灵活性,并详细阐述了单一职责原则、开闭原则、里氏替换原则、依赖倒置原则、接口隔离原则和迪米特法则。同时,列举了23种设计模式,包括创建型、结构型和行为型模式,以提升代码质量和可维护性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

 

 

1、软件开发设计指导思想:

(1)可维护性Maintainability

(2)可复用性Reusability

(3)可扩展性Extensibility/Scalability

(4)灵活性flexibility/mobility/adaptability

2、设计原则

(1)单一职责原则Single Responsibility Principle

(2)开闭原则Open-Closed Principle

(3)里氏替换原则Liscov Substitution Principle

(4)依赖倒置原则Dependency Inversion Principle

(5)接口隔离原则Interface Segregation Principle

(6)迪米特法则Law of Demeter

3、23种设计模式列表

(1)创建型模式(creational)

         抽象工厂模式Abstract Factory

         工厂方法模式Factory Method

        构建者模式Builder

        原型模式Prototype

        单例模式Singleton

(2)结构型模式(structual)

        适配器模式Adapter

        桥接模式Bridge

        组合模式Composite

        装饰者模式Decorator

        外观模式Facade

        享元模式Flyweight

        代理模式Proxy

(3)表现型模式(behavioral)

        责任链模式Chain of Responsibility

        命令模式Command

        解释器模式Interpreter

        迭代器模式Iterator

        中介者模式Mediator

        备忘录模式Memento

        观察者模式Observer

        状态模式State

       策略模式Strategy

       模板方法Template Method

        访问者模式Visitor


 

 

1、软件开发设计指导思想:

(1)可维护性Maintainability

修改功能,需要改动的地方越少,可维护性越好

 

(2)可复用性Reusability

代码可以被以后重复使用

写出自己总结的类库

 

(3)可扩展性Extensibility/Scalability

添加功能无需修改原来代码

 

(4)灵活性flexibility/mobility/adaptability

代码接口可以灵活调用

 

2、设计原则

基于以上软件开发设计思想,具体派生出6大设计原则。基于这些原则,我们又会有一些设计模式、编码模板。

(1)单一职责原则Single Responsibility Principle

一个类只负责单一职责

高内聚、低耦合 

 

(2)开闭原则Open-Closed Principle

对扩展开放,对修改关闭

实现尽量不修改原来代码的情况下进行扩展

抽象化,多态是开闭原则的关键

 

(3)里氏替换原则Liscov Substitution Principle

所有使用父类的地方,必须能够透明的使用子类对象,子类可以透明替换父类

 

(4)依赖倒置原则Dependency Inversion Principle

依赖抽象,而不是依赖具体实现

面向抽象编程、面向接口编程

 

 

(5)接口隔离原则Interface Segregation Principle

每一个接口应该承担独立的角色,不干不该自己干的事

Flyable和Runnable不该合二为一

避免子类实现不需要实现的方法

需要对客户提供接口的时候,只需要暴露最小的接口

 

(6)迪米特法则Law of Demeter

一个对象应该对其他对象保持最少的了解,又叫最少知道原则。

尽量降低类与类之间的耦合。不要对外公开太多public方法,以及非静态的public方法

尽量使用private等访问权限  。 

 尽量不要和陌生人说话,强调只和朋友谈话。

 

       在迪米特法则中,对于一个对象,非陌生人包括以下几类:

            当前对象本身(this);

            以参数形式传入到当前对象方法中的对象

            当前对象的成员对象

           如果当前对象的成员对象是一个集合,那么集合中的元素也是朋友

           当前对象所创建的对象

 

3、23种设计模式列表

设计模式分为创建型模式(creational)、结构型模式(structual)、表现型模式(behavioral)。

完整代码在这里:

https://github.com/phs999/DesignPatterns/tree/dp_gamemodel/design_pattern

(1)创建型模式(creational)

         抽象工厂模式Abstract Factory

<
第一章 软件工程基本观念 1.1 软件工程的目标常用模型 1.2 软件开发的基本策略 1.2.1 复用 1.2.2 分而治之 1.2.3 优化——折衷 1.3 一些不正确的观念 1.4 一些有争议的观念 1.5 小结 第二章 程序员程序经理 2.1 了解程序员 2.2 了解程序经理 2.3 程序员升为经理后是否还要编程 2.4 经理技术队伍的建设 2.5 向错误失败学习 2.6 提高综合素责 2.7 小结 第三章 项目计划质量管理 3.1 项目计划 3.1.1 知己知彼 3.1.2 进度安排 3.2 零缺陷质量管理的观念 3.2.1 高目标 3.2.2 可执行的规范 3.3 软件的质量因素 3.3.1 正确性精确性 3.3.2 性能效率 3.3.3 易用性 3.3.4 可理解性简洁性 3.3.5 可复用性可扩充性 3.4 质量检查 3.5 小结 第四章 可行性分析需求分析 4.1可行性分析的要素 4.1.1 经济 一、成本——收益分析 二、短期——长远利益分析 4.1.2 技术 4.1.3 社会环境 4.1.4 人 4.2 可行性分析案例——投资软件公司失败的教训 4.2.1可行性分析案例之一 4.2.2 可行性分析案例之二 4.2.2 可行性分析案例之三 4.3 需求分析为什么困难 4.3.1 客户说不清楚需求 4.3.2 需求自身经常变动 4.3.3 分析人员或客户理解有误 4.4 如何进行需求分析 4.4.1 应该了解什么 4.4.2 通过什么方式去了解 4.5 小结 第五章 系统设计 5.1 体系结构设计 5.1.1 层次结构 一、上下级关系的层次结构 二、顺序相邻关系的层次结构 三、其它的层次结构 5.1.2 Client/Server结构 5.2 模块设计 5.2.1 信息隐藏 5.2.2 内聚耦合 5.2.3 封闭——开放性 5.3 数据结构算法设计 5.4 用户界面设计 5.4.1 界面设计中美的需求导向作用 5.4.2 界面美的内涵 一、界面的合适性 二、界面的风格 三、界面的广义美 5.5 系统设计示例——支持协同工作的交互式三维图形软件开发系统 5.5.1 设计背景 5.5.2 通用交互式三维图形软件开发工具 Intra3D 2.0 5.5.2.1 主要模块和功能 5.5.2.2 用户界面设计 5.5.3 支持协同工作的网络通讯开发系统 CNC 1.0 5.5.3.1 CNC 客户程序的API设计 5.5.3.2 CNC Server的设计 5.5.4 应用示例 5.6 小结
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值