设计模式
文章平均质量分 68
伟哥教你写代码
这个作者很懒,什么都没留下…
展开
-
设计模式---策略模式
场景介绍:公司需要设计一款模拟鸭子的游戏。游戏中会出现各种鸭子,一边游泳,一边呱呱叫。所以设计的时候就设计了一个鸭子超类,让各种鸭子都集成此超类。如下: 但是现在竞争压力大,公司需要创新,得需要会飞的鸭子将其他竞争者抛在后面。这时候我们应该怎么办呢?使用继承:使用接口:分开变化和不会变化的部分: 这就是我们所说的策略模式:定义了算法族,分别封装起来,让它们之间可以相互替换,此模式让算法独立于原创 2017-12-11 09:34:11 · 155 阅读 · 0 评论 -
设计模式---单例模式
定义:作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。单例模式分成饿汉模式和懒汉模式。饿汉模式代码如下: 懒汉模式代码如下: 饿汉模式与懒汉模式的区别: 饿汉式是典型的空间换时间,当类装载的时候就会创建类的实例,不管你用不用,先创建出来,然后每次调用的时候,就不需要再判断,节省了运行时间。线程安全 懒汉式是典型的时间换空间,就是原创 2017-12-11 09:38:00 · 169 阅读 · 0 评论 -
设计模式---工厂模式
实现了创建者与调用者的分离。 分类:简单工厂模式、工厂方法模式、抽象工厂模式。1.简单工厂模式 简单工厂模式也叫静态工厂模式,就是工厂类一般使用静态方法,通过接收参数的不同来返回不同的实例对象。缺点是对于新增加的产品扩展性不好。 类图如下:2. 工厂方法模式 定义了一个创建对象的接口,但由子类决定是实例化哪一个。与简单工厂模式最大的区别是简单工厂模式只有一个工厂类,而工厂方法模式有一组实现了原创 2017-12-11 09:46:24 · 204 阅读 · 0 评论 -
设计模式---代理模式
定义:为某个对象提供一个代理,以控制对这个对象的访问。 代理类和委托类有共同的父类或父接口,这样在任何使用委托类对象的地方都可以用代理对象替代。代理类负责请求的预处理、过滤、将请求分派给委托类处理、以及委托类执行完请求后的后续处理。 静态代理:代理和被代理对象在代理之前是确定的。他们都实现了相同的接口或者继承了相同的类。静态代理类优缺点 优点:业务类只需要关注业务逻辑本身,保证了业务类的重用性。原创 2017-12-11 09:59:37 · 215 阅读 · 0 评论 -
设计模式---观察者模式
1.观察者模式的定义定义对象间的一种一对多的依赖关系。当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动更新。2.观察者模式实战2.1观察者模式的结构和说明Subject为目标,也叫被观察者,Observer为观察者。 Attach方法为添加观察者,detach方法为删除观察者,notify方法为通知观察者,执行notify时会调用观察者(Observer)的update方法更新。原创 2017-12-03 23:00:22 · 236 阅读 · 0 评论