设计模式
设计模式在计算机语言中占有挺大的作用,如果说算法是编程的灵魂,那么设计模式就是编程的艺术殿堂。好的设计模式,在实际开发中就起到很大的作用。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。
Java中总共有23种设计模式,其他这些模式在各个语言上都是相通的,就是语法不同罢了,现在主要是讲iOS平台下的设计模式。
一、设计模式的基本原则
1.1 开闭原则(Open Closed Principle,OCP)
对扩展开放,对修改关闭。
当一个类里的一个属性或方法不用了,但是这个类在很多地方需要用到,而现在要实现的功能不需要某个属性或方法,那就不应该对该属性或方法进行删除或内部修改(即对修改
关闭),而应该继承自该类,进行扩展属性或方法(即对扩展开放)。
1.2 里氏代换原则(Liskov Substitution Principle,LSP)
和多态相似
1.3 依赖倒转原则(Dependency Inversion Principle,DIP)
抽象不依赖于细节(具体实现),而细节(具体实现)依赖于抽象。不应该把具体实现暴露在接口外面。
1.4 接口隔离原则(Interface Segregation Principle,ISP)
不要让接口做与其不相干的(超出它范围之外的)事情。
1.5 合成/聚合复用原则(Composite/Aggregate Reuse Principle,CARP)
设计模式的类型
1.GoF patterns
2.异发设计模式 Concurrency patterns
处理和线程执行顺序有关的模式
3.框架级别的设计模式 Architectural patterns
MVC,MVVM。
4.other patterns
Software design pattern Wikipedia
Design Patterns - Wikipedia
Gang Of Four
1.6 最小知识原则(Principle of Least Knowledge,PLK,也叫迪米特法则)。
二、主要模式
工厂模式
工厂模式主要包括简单工厂,工厂方法和抽象工厂模式。
1.简单工厂模式
2.工厂方法模式
3.抽象工厂模式
单例模式
组合模式
观察者模式
策略模式
命令模式
责任链模式
适配器模式
构造器模式
装饰器模式
备忘录模式
迭代器模式
原型/外观模式
桥接模式
代理模式
访问者模式