设计模式
PesenX
这个作者很懒,什么都没留下…
展开
-
设计模式(三)装饰者模式
装饰者模式动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。 开放-关闭原则:类应该对扩展开发,对修改关闭。开放-关闭原则,允许在不修改现有代码的情况下实现功能扩展,但遵循开放-关闭原则通常会引入新的抽象层,增加代码的复杂度,因此没有必要把每个细节都这样设计,我们只需在设计中最有可能改变的地方应用该原则即可。原创 2017-04-07 15:25:00 · 12723 阅读 · 0 评论 -
面向对象设计原则
在面向对象的软件设计中,只有尽量降低各个模块之间的耦合度,才能提高代码的复用率,系统的可维护性、可扩展性才能提高。面向对象的软件设计中,有23种经典的设计模式,是一套前人代码设计经验的总结,如果把设计模式比作武功招式,那么设计原则就好比是内功心法。常用的设计原则有七个,下文将具体介绍。 七种设计原则简单归纳如下 单一职责原则:专注降低类的复杂度,实现类要职责单一; 开放关闭原则:所有面向对象原则...原创 2018-09-28 15:36:19 · 12157 阅读 · 1 评论 -
设计模式(六)命令模式
概述 在软件系统中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”。但在某些场合,比如要对行为进行“记录、撤销/重做、事务”等处理,这种无法抵御变化的紧耦合是不合适的。在这种情况下,如何将“行为请求者”与“行为实现者”解耦?将一组行为抽象为对象,实现二者之间的松耦合。这就是命令模式(Command Pattern)。 关键词:解耦 UML Command 定义命令的接口,声明执...原创 2018-08-25 19:05:53 · 10170 阅读 · 0 评论 -
设计模式(二)java内置的观察者模式
java.util包内包含最基本的Observer接口和Observable类,这和上一节的Observer接口与Subject接口很相似。Observer接口和Observable类使用上更方便。因为许多功能已经事先准备好了,甚至可以使用推(push)或拉(pull)的方式传递数据。但是Observable类也有一些黑暗面,有时候我们还是需要实现自己的主题接口。原创 2017-04-06 15:39:09 · 12928 阅读 · 0 评论 -
设计模式(一)策略模式
定义 策略模式定义了算法族,分别封装起来,它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。 设计原则 多用组合,少用继承:“有一个”可能比“是一个”更好。 针对接口编程:“针对接口编程”的真正意思是针对“超类型”编程,关键在于多态。 封装变化:找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。 UML 实现原创 2017-04-05 13:55:02 · 12824 阅读 · 0 评论 -
设计模式(二)观察者模式
定义 观察者模式定义了对象之间的一对多依赖,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。 设计原则 为了交互对象之间的松耦合设计而努力。原创 2017-04-05 21:49:05 · 12626 阅读 · 0 评论 -
设计模式(五)单例模式
像线程池、缓存、注册表等,有一个对象就够了,使用单例模式能够很好的满足这方面的需求。 单例模式确保一个类只有一个实例,并提供一个全局访问点。原创 2017-04-09 20:48:39 · 12573 阅读 · 0 评论 -
设计模式(四)-工厂模式-简单工厂
简单工厂其实不是一个设计模式,反而像一种编程习惯。但由于经常被使用,所以人民经常把它放到工厂模式里面。 简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。原创 2017-04-09 19:34:59 · 12691 阅读 · 0 评论 -
设计模式(四)-工厂模式-抽象工厂模式
抽象工厂允许客户使用抽象的接口来创建一组相关的产品,而不需要知道(或关心)实际产出的具体产品是什么。这样一来,客户就从具体的产品中被解耦。 抽象工厂模式提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体的类。 依赖倒置原则原创 2017-04-09 14:24:13 · 12613 阅读 · 0 评论 -
设计模式(四)工厂模式-工厂方法模式
对象实例化这个活动不应该总是公开进行的,初始化对象经常造成耦合问题。除了使用new操作符之外,还有更多制造对象的方法,而工厂方法模式用来处理对象的创建(事实上所有的工厂模式都是用来封装对象的创建的),并将这样的行为封装在子类中。这样客户程序中关于超类的代码就和子类对象创建代码解耦了。 工厂方法模式定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。原创 2017-04-08 23:29:24 · 12677 阅读 · 0 评论 -
设计模式(三)装饰者模式之java.io
java.io类库封装了操作系统底层的I/O细节,提供一套简单方便、功能丰富的I/O解决方案。但是包含了太多的小类,如果对java.io类库的设计思路不了解,可能会搞不懂java里面的I/O关系。上一节已经介绍了装饰者模式的工作原理,如果我们知道java.io类库是使用装饰者模式组织的,理解起来会不会简单一些,下面以输入流(其它流基本相似)为例介绍。原创 2017-04-07 18:30:46 · 12833 阅读 · 0 评论 -
面向对象程序设计
面向对象的特征 抽象 抽象就是找出一些事物的相似和共性之处,然后将这些事物归为一个类,抽象包括行为抽象和状态抽象两个方面。 封装 封装(encapsulation)是将对象运行所需的资源封装在程序对象中(基本上,是方法和数据),即隐藏对象的属性和实现细节,仅对外公开接口,控制程序中属性的访问级别。 继承 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承...原创 2018-10-21 21:14:56 · 1904 阅读 · 0 评论