![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
Jackiezhw
这个作者很懒,什么都没留下…
展开
-
Java,天生丽质乱人眼 zz
Java在国外很多大学已经取代语言成为主要教授的语言了。 上面这句是话我在很多Java论坛上经常看到的,意为Java已经打倒了C的霸主地位,成为了编程界一统天下的强大语言了。 Java确实天生丽质,严谨的类库设计,多面手的应用和非凡的语法让我一接触到Java就被深深地迷住了。但是Java能够取代C这一点上,我还是不敢苟同。 C,何方神圣也?Unix,Linu转载 2007-04-03 08:55:00 · 1544 阅读 · 0 评论 -
开闭原则(open-closed principle)
开闭原则是由Bertrand Meyer于1988年提出的,当时的描述如下:SOFTWARE ENTITIES(CLASSES,MODULES,FUNCTIONS, ETC.)SHOULD BE OPEN FOR EXTENSION , BUT CLOSED FOR MODIFICATION.Modules that conform to the open-closed principle hav原创 2007-04-18 20:39:00 · 1042 阅读 · 0 评论 -
依赖倒转原则(The Dependency Inversion Principle)
依赖倒转原则包括两个方面:A. HIGH LEVEL MODULES SHOULD NOT DEPEND UPON LOW LEVEL MODULES . BOTH SHOULD DEPEND UPON ABSTRACTIONS.B. A BSTRACTIONS SHOULD NOT DEPEND UPON DETAILS . DETAILS SHOULD DEPEND UPON ABSTRAC原创 2007-04-23 14:14:00 · 1773 阅读 · 0 评论 -
里氏代换原则(The Liskov Substitution Principle)
里氏代换原则由Barbara Liskov于1988年提出,它最开始的定义如下:If for each object o1 of type S there is an object o2 of type T such that for all programs P defined in terms of T, the behavior of P is unchanged when o1 is s原创 2007-04-18 21:38:00 · 1928 阅读 · 0 评论 -
合成/聚合复用原则(Composite/Aggregate Reuse Principle )
合成/聚合复用原则的简单表述:要尽量使用合成/聚合,尽量不要使用继承。合成与聚合的区别: 合成与聚合都是关联的特殊种类。聚合表示拥有关系或者整体与部分的关系;合成表示一种更强的拥有关系,在一个合成关系里面,部分和整体的生命周期是一样的。一个合成部分只是属于一个合成关系,其多重性只能为1,而聚合则恰恰相反。在程序实现时都是使用类中一个变量的形式,由程序员区分二者。Is-A 和Has-原创 2007-04-23 22:53:00 · 1599 阅读 · 0 评论 -
接口隔离原则(Interface Segregation Principle)
接口隔离原则指出:CLIENTS SHOULD NOT BE FORCED TO DEPEND UPON INTERFACES THAT THEY DO NOT USE. 首先介绍接口污染。一个没有经验的设计师往往想节省接口的数目, 将一些功能相近或功能相关的接口合并, 并将这看成是代码优化的一部分。定义:从一个客户类的角度来讲:一个类对另外一个类的依赖性应当是建立在最小的接口上的。原创 2007-04-23 22:40:00 · 2341 阅读 · 1 评论 -
Java Dynamic Proxy
代理模式 代理模式的三个角色:1. 抽象主题角色:声明真实主题和代理主题的共同接口2. 代理主题:含有对真是主题的引用,可在任何时候操作真实主题3. 真是主题:实现逻辑的类类图如下:图1Java 动态代理从JDK1.3开始,Java就引入了动态代理的概念。动态代理(Dynamic Proxy)可以帮助你减少代码行数,真正提高代码的可复用度。 类图如下:原创 2007-06-01 10:27:00 · 1562 阅读 · 0 评论 -
How to Design a Good API and Why it Matters
近日设计RMI到Infiniband网络的接口,发现如何设计一个好的API是个很有挑战的问题。看了Joshua Bloch的ppt,做了一个总结API可以成为一个公司很大的资产,因为好的API是可以赢得客户的。而且一旦API被public就很难改变,这也是在Java的包中有很多Deprecated的类和方法,却不能直接被删除。好的代码应该是模块化的,每个模块都有自己的API;有用的模块原创 2007-09-11 10:45:00 · 2052 阅读 · 0 评论