[Objective-C 设计模式]模版方法模式
模版方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模版方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
优点:
1、模版方法模式是通过把不变行为搬移到超类,去除子类中的重复代码来体现它的优势。
2、模板方法模式是一种代码复用的基本技术。
3、模板方法模式导致一种反向的控制结构,通过一个父类调用其子类的操作,通过对子类的扩展增加新的行为,符合“开闭原则”。
[Objective-C 设计模式]原型模式
原型模式(prototype):用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。
优点:
1、原型模式其实就是从一个对象再创建另外一个可定制的对象,而且不需要知道任何创建的细节。
2、隐藏了创建细节,也提高了创建对象的性能。
[Objective-C 设计模式]工厂方法模式
工厂方法模式 : 定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。
优点
1、 在工厂方法中,用户只需要知道所要产品的具体工厂,无须关心具体的创建过程,甚至不需要具体产品类的类名。
2、 在系统增加新的产品时,我们只需要添加一个具体产品类和对应的实现工厂,无需对原工厂进行任何修改,很好地符合了“开闭原则”。
[Objective-C 设计模式]代理模式
代理模式:为其他对象提供一种代理以控制对这个对象的访问
优点:
1、 代理模式能够协调调用者和被调用者,在一定程度上降低了系统的耦合度。
2、 代理对象可以在客户端和目标对象之间起到中介的作用
[Objective-C 设计模式]装饰模式
装饰者模式定义:动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更加有弹性的替代方案。
我们都知道,可以使用两种方式给一个类或者对象添加行为。
一是使用继承。继承是给一个类添加行为的比较有效的途径。通过使用继承,可以使得子类在拥有自身方法的同时,还可以拥有父类的方法。但是使用继承是静态的,在编译的时候就已经决定了子类的行为,我们不便于控制增加行为的方式和时机。
二是使用关联。组合即将一个对象嵌入到另一个对象中,由另一个对象来决定是否引用该对象来扩展自己的行为。这是一种动态的方式,我们可以在应用程序中动态的控制。
与继承相比,关联关系的优势就在于不会破坏类的封装性,且具有较好的松耦合性,可以使系统更加容易维护。但是它的缺点就在于要创建比继承更多的对象。
[Objective-C 设计模式]策略模式
策略模式定义:定义了算法家族,分别封装起来,让他们之前可以互相转换,此模式让算法的变化,不会影响到使用算法的客户。
[Objective-C 设计模式]简单工厂模式
写代码已经写了5年多了,自从开始写代码的时候,就买了本《大话设计模式》在研究,当时对设计模式还不是很明白,经过这么多年的沉淀,感觉对设计模式也有一些心得,但是最近不知道为何,感觉自己写的代码还是不够好,没有达到真正的面相对象开发,所以现在重新温习一下设计模式,看看能不能有一些新的体会,让我的代码能够更健壮,更加易于扩展,能更好的抵抗策划多变的需求。也随便学习一下Objective-C语言(一直想学习这么语言,但是无奈于闲暇时间太少。)
简单工厂模式