Design Model
来源:互联网 发布:知乎 正楷 字帖推荐 编辑:程序博客网 时间:2024/06/08 18:16
提到设计模式,不得不感谢GoF(Gang of Four,四人组),他们1995年出版的《设计模式》一书,第一次将设计模式提升到理论高度,并将之规范化。书中一共总结了23种基本的设计模式。而这23中设计模式几乎涵盖了面向对象设计过程中所有问题的解决方案。书中提到的23种设计模式分别是:
1.单例模式 2.工厂方法模式 3.抽象工厂模式 4.模版方法模式 5.建造者模式 6.代理模式 7.原型模式 8.中介者模式
9.命令模式 10.责任链模式 11.装饰模式 12.策略模式 13.适配器模式 14.迭代器模式 15.组合模式 16.观察者模式
17.门面模式 18.备忘录模式 19.访问者模式 20.状态模式 21.解释器模式 22.享元模式 23.桥梁模式
那么如此多的设计模式又是从何而来呢?《易经》有云:“易有太极,是生两仪,两仪生四象,四象生八卦”,意思就是说世界万物皆有起源。而设计模式的起源是面向对象程序设计思想,是面向对象设计的精髓——抽象。面向对象通过类和对象来实现抽象,实现时产生了面向对象的三个重要机制:封装、继承、多态。正是这三个机制衍生出了各种各样的设计模式。在面向对象软件设计的发展过程中,除了《设计模式》一书中提到的23中设计模式之外,新的设计模式仍然不断出现。
从面向过程到面向对象是软件设计诞生以来的迈出的最伟大的一步,面向对象程序设计成功解决了面向过程软件编程的低效率问题,并且彻底改变了人们的编程思维,为软件设计揭开了新的篇章。然而,要实现面向对象设计,彻底摆脱面向过程设计思维,并不仅仅是只要使用了一门面向对象的编程语言就能够达到的。使用面向对象设计,可以设计出优秀的软件,同样也可以设计出糟糕的软件。只有遵循一些特定的原则,才能设计出复用性高灵活性好的软件来。
在运用面向对象的思想进行软件设计时,需要遵循的原则一共有6个,他们是:
1. 单一职责原则(Single Responsibility Principle)
2. 里氏替换原则(Liskov Substitution Principle)
3. 依赖倒置原则(Dependence Inversion Principle)
4. 接口隔离原则(Interface Segregation Principle)
5. 迪米特法则(Law Of Demeter)
6. 开闭原则(Open Close Principle)
在软件设计的过程中,只要我们尽量遵循以上六条设计原则,设计出来的软件一定会是一个优秀的软件,它必定足够健壮、足够稳定,并以极大的灵活性来迎接随时而来的需求变更等因素。当完全明白这六个原则的含义时,小菜便完成了走向大牛的蜕变。
- design model
- Design Model
- Why Domain Model Design ?
- 24 种Design Model
- Java Design Model
- Design to Schedule Model
- Data Model Design
- System Design and V Model
- How to design your model
- Domain Model Analysis and Design
- logistics-2-data model design
- Accounting Balance Data Model Design
- Provider Model Design Pattern Part 1
- Base on the model to design spec.
- Design Model - GRASP: Designing Objects With Responsibilities
- Model-Driven Design Using Business Patterns
- The Design of Model (part 1)
- The Design of Model (part 2)
- 实战脱坑,定制Android导航栏的那些坑
- 华为s5700s-28p-li-ac配置小结
- Sequencher_v4.1.4 DNA 序列分析的工业标准软件
- android 输入框EditText禁止输入Emoji表情符
- 如何用消息系统避免分布式事务?
- Design Model
- 22款基于jQuery的响应式图片滑块插件
- struts2登录拦截器代码实例
- 第二周【项目3 - 体验复杂度】
- 使用Workbench创建数据库和表
- LeetCode Implement Queue using Stacks
- C++Primer第五版 3.3.2节练习
- LeetCode 1 Two Sum
- sqoop 抽取源码流程分析( 二 ) 导入工具代码结构分析