1. 引入设计模式的必要性
引入软件设计模式将成为企业或者个人可持续发展的必然选择。只有专业,才能在这个领域做得最好,为社会、企业和个人带来更多的价值。
2 软件设计遵循的基本原则
(1).高内聚、低耦合
一个软件系统要有一个稳定的架构,不会随需求的改变而发生巨大的变动。因此,高内聚、低耦合是一个软件系统设计中必须遵循的基本原则。
(2).面向抽象编程
在面向过程的软件开发中,上层组件调用下层组件,就意味着上层组件依赖于下层组件,当下层组件发生剧烈变化时,上层组件也要跟着一起发生变动,这将导致软件组件模块的复用性大大降低,从而增加软件开发成本,使软件结构设计上存在一定的臃肿性,不利于后期系统维护工作。
(3)多用组合少用继承
在面向对象的软件设计中,对于类的扩展,首先想到的是使用类的继承来实现,由子类继承父类,从而完成对子类功能的扩展。继承的好处是可以尽量让相同的属性或者功能复用,但是随着项目越来越大,需求的不断变化,继承就会变得越来越臃肿,后期难以控制和维护。最重要的是,继承会不分青红皂白地把父类的公有和受保护的方法统统继承来,而这些方法可能是子类不需要的功能,会对子类产生一些危害。
(4)“开-闭”原则
“开- 闭”原则,即“对扩展开放,对修改关闭”,指的是在软件设计中,当对某一软件实体进行扩展时,尽量不要去修改原有的软件实体,换句话说就是在不修改原有软件实体的情况下对其进行扩展。这种软件设计方式其实是一种目标,它考虑了软件后期的维护等其他因素。一个软件系统如果可以达到这个目标,那它就是可扩展、易维护的。
3.设计模式的分类
(1).创建型模式
创建型模式用来处理对象的创建过程,主要包含以下5种设计模式:
工厂方法模式(Factory MethodPattern)
抽象工厂模式(AbstractFactory Pattern)
建造者模式(Builder Pattern)
原型模式(PrototypePattern)
单例模式(SingletonPattern)
(2).结构型模式
结构型模式用来处理类或者对象的组合,主要包含以下7种设计模式:
适配器模式(Adapter Pattern)
桥接模式(Bridge Pattern)
组合模式(CompositePattern)
装饰者模式(DecoratorPattern)
外观模式(Facade Pattern)
享元模式(FlyweightPattern)
代理模式(Proxy Pattern)
(3).行为型模式
行为型模式用来对类或对象怎样交互和怎样分配职责进行描述,主要包含以
下11种设计模式:
责任链模式(Chain ofResponsibility Pattern)
命令模式(Command Pattern)
解释器模式(InterpreterPattern)
迭代器模式(IteratorPattern)
中介者模式(MediatorPattern)
备忘录模式(Memento Pattern)
观察者模式(ObserverPattern)
状态模式(State Pattern)
策略模式(Strategy Pattern)
模板方法模式(TemplateMethod Pattern)
访问者模式(Visitor Pattern)