设计模式
自己学习设计模式的经验总结。
飘寒
这个作者很懒,什么都没留下…
展开
-
设计模式学习03—抽象工厂模式
1、动机与定义 工厂模式中,一个工厂只能提供一个或一类产品,当产品种类较多,形成产品系列(比如我们要创建跨平台的按钮,菜单,文本框等等一系列GUI控件: 单纯使用工厂模式会产生大量工厂,而且后期维护也不方便,我们可以从产品中找到规律,如果产品等级相对固定,以后只会新增产品族,那么我们就可以把整个产品族放到一个工厂创建,以后新增其他系统产品族也非常方原创 2014-06-04 13:06:58 · 1262 阅读 · 0 评论 -
设计模式学习02—工厂模式
等等,如果你再仔细想想,各种各样的情况下都有各种各样的缺点(当然这么写也有优点的,至少简单嘛,如何设计没有最好,只有合适的),那么我们有没有其他方式来规避这些问题呢?其实我们需要一个对象时,除了自己new之外,还有就是从其他地方获取,我们完全可以把这些按钮的创建过程放到一起,客户端使用的时候直接获取就行了。 工厂模式通用类图如下: 三、适用场景及效果(优缺点) 没有工厂的时候,假如我们要做饭,需要用到火,创建火的同时发现需要用到木柴,还要创建一个锯来锯木柴......代码如原创 2014-05-18 16:43:57 · 1109 阅读 · 0 评论 -
设计模式6大原则(6):开闭原则
开闭原则开闭原则:Open Closed Principle(OCP)1988年,勃兰特·梅耶(Bertrand Meyer)在他的著作《面向对象软件构造(ObjectOriented Software Construction)》中提出了开闭原则,它的原文是这样:“Software entities should be open for extension,but closed form原创 2013-07-12 07:38:28 · 693 阅读 · 0 评论 -
设计模式6大原则(5):迪米特法则
迪米特法则迪米特法则:Law of Demeter(LoD)设计模式6大原则中,怎么出现一个法则呢?原则强调说话行事的准则,规则;法则强调规律,法度规范。不过这里我们不讨论文字,1987年秋天由美国Northeastern University的Ian Holland提出,被UML的创始者之一Booch等普及。后来,因为在经典著作《 The Pragmatic Programmer》而广为原创 2013-07-08 21:50:48 · 726 阅读 · 0 评论 -
设计模式6大原则(4):接口隔离原则
接口隔离原则接口隔离原则:Interface Segregation Principle(ISP)这个原则从字面上就能知道什么意思,隔离开接口,那什么是接口,如何隔离呢?首先确定接口定义,这里的接口分为2种:1.类接口,比如Java中使用interface声明的接口。2.实例接口,也就是创建实例的类,比如Object obj = new Object();这里面obj是实例,O原创 2013-07-01 08:05:48 · 667 阅读 · 0 评论 -
设计模式6大原则(3):依赖倒置原则
依赖倒置原则 依赖倒置原则:Dependence Inversion Principle(DIP) 这个原则命名是根据功能来的,看到名字就能想到功能,依赖倒置,那么就有依赖正置了,也就是正常依赖,什么意思呢,正常依赖就是用什么依赖是什么,比如ArrayList list = new ArrayList();用到ArrayList,就创建ArrayList。那么我们看看什么是依赖原创 2013-06-26 09:31:41 · 730 阅读 · 0 评论 -
设计模式6大原则(2):里氏替换原则
里氏替换原则里氏替换原则:Liskov Substitution Principle(LSP)刚看到这项原则的时候很困惑,完全不懂什么意思,不过根据西方人思维,喜欢用人名来命名,以纪念或彰显某个人的功绩等等,猜测是一个叫里氏的人提出来的。后来查阅维基百科,这个原则由麻省理工学院的芭芭拉·利斯科夫(Barbara Liskov)在1987年在一次会议上名为“数据的抽象与层次”的演说中首先提出原创 2013-06-24 22:54:58 · 656 阅读 · 0 评论 -
设计模式6大原则(1):单一职责原则
单一职责原则单一职责原则:Single Responsibility Principle(SRP)这个原则说起来非常简单,定义是:应该有且仅有一个原因引起类的变更。就是一个类只有一个职责,说到这里,很多人都会不屑一顾。因为它太简单了,简单得不需要我们更加深入的思考,单从字面上就明白了什么意思。稍有经验的程序员即使从来没有读过设计模式、从来没有听说过单一职责原则,在设计软件时也会自觉原创 2013-06-23 16:05:46 · 800 阅读 · 0 评论 -
设计模式学习01—单例模式
一、动机与定义 系统中有些资源只能有一个,或者一个就够,多个浪费。例如一个系统只能有一个窗口管理器或文件系统、一个系统只能有一个计时器或序号生成器、web系统只能有一个页面计数器等等。此时,最好就需要把这些资源设置成有且仅有一个实例。 代码中也就是如何保证一个类只有一个实例并且这个实例能够被访问呢?只有一个实例的就意味着不能让其他类来实例化,也就是只能自己实例化自己。能够被原创 2014-05-13 10:22:27 · 1126 阅读 · 2 评论