浏览 6213 次
锁定老帖子 主题:软件架构经典语录
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (1)
|
|
---|---|
作者 | 正文 |
发表时间:2011-11-07
软件的可维护性和可复用性是面向对象的设计要解决的核心问题。 “开闭原则”讲的是一个软件实体对扩展开放,对修改关闭。 接口使可插入性变得可能,在一个类等级结构的任何一个类可以实现一个接口,这个接口影响到此类的所有子类,但不会影响到此类的所有超类。 抽象类一定是用来继承的,具体类不是用来继承的。 创建模式围绕创建者和被创建者是否可以抽象,已经创建的个数,家族产品,产生了许多不同的创建模式。单例,多例,抽象工厂,建造模式等等。 对象适配器模式可以把多种不同的源适配到同一个目标,而类适配器模式很难把源类和子类都适配到目标类。 缺省适配器模式其实就是一个类适配器模式,这个缺省的适配器最好是抽象类,不能实例化,因为提供的方法都是缺省的实现,一般是没有意义的,具体的实现类才是真正的适配器类,实现自己需要的接口方法,这时候缺省适配器变成了源。 合成模式比较适合对象的树型结构的管理,根据component定义的结构方法是否全分为透明式和安全式,透明的接口定义所有的方法,但是运行期可能报错,安全式,只有composite实现管理对象的方法,component定义对象本身的功能方法。 装饰模式是继承关系的替代方案,和合成模式形式上差不多,实际上不一样,在合成模式的composite上继续继承子类修饰构件(component),适配器模式关注的仅仅是接口的适配,装饰模式关注对象的性能,会给对象的方法附加一些功能。 代理模式,是给对象提供一个代理对象,控制原对象的引用,原对象和代理对象实现同一个接口定义,实现上有点类似对象适配器模式,只是要加强对原对象的控制和原对象和代理对象要实现同一个接口。 享元模式分单和复合享元,享元的对象要分不变状态和可变状态,可变状态通过具体享元对象通过参数事例,这个模式里关键的是享元工厂,通过这个工厂创建具体的享元对象和是否共享享元对象,享元工厂一般是单例的模式实现。 封装变化,实际上是达到“开-闭”原则的途径,与组合/聚合复用原则相辅相成;闭或封装了抽象的商业逻辑,实现是“开”的,允许具体实现的多态性。 一个好的设计通常没有多于两层的继承等级结构,如果出现两个以上的变化因数,找出那个是静态的可以使用继承关系,那个是动态的必须使用聚合关系。 抽象化,实现化,脱耦是理解桥梁模式的关键,通过聚合关系实现桥梁的作用。 享元模式的对象可以是不变模式的对象,但并不要求享元模式一定是不变对象。不变模式分弱不变和强不变模式两种,“不变”和“只读”是很大的不同,不变是不可以修改,只读表示变量本身不可修改,但是可以在其它变量发生变化时发生变化。String类就是一个不变模式的实现体现。 策略模式实现算法职责(环境)和算法本身的分离。策略模式在每一个时刻只能使用一个策略对象。一个应用对应有时对应几个策略对象,应用程序可以在几个策略对象之间调换。策略在应用程序启动的时候就已经创立。 模板模式:涉及具体方法(模板方法),抽象方法(子类实现),钩子方法;servelet的实现方式就包括模板模式和观察者模式,如实现一个servelet和监听器(severlet、session)。 观察者模式主要要理解主题角色和观察者角色的概念,一类主题让一个或多个观察者检视,主题类管理观察者对象(增、删、通知),观察者类实现update方法(注意方法的标准命名,类似模板方法的do开头命名);观察者模式在MVC里的视图相当于观察者类。 迭代子模式关键聚集类要有创建迭代子类的方法,通过this把对象引用放到迭代子类里,同时聚集类要提供访问里具体元素的访问方法。 责任链模式:可以理解为一个链表把一些对象连接起来,每个对象都有关联的下一个对象,一个请求给一个对象后,有由这个对象决定自己处理还是让下面的对象处理。 命令模式把发出命令的职责和执行命令的职责分开。 备忘录模式又叫快照模式、token模式,有发起者、负责人、备忘录角色、备忘录对象记录的是对象内部对象的临时状态。也可以存储多个备忘录对象。 状态模式的状态对象根据上下文的状态决定对应的状态实现类对象。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-11-08
最后修改:2011-11-08
其实你主要在讲设计模式,目前,大家都认为架构是设计中的一个方面,正好我这里也有些语录:吃"软饭"的一些不良思考习惯
|
|
返回顶楼 | |
发表时间:2011-11-08
恩,一起研究的哈。。。。
|
|
返回顶楼 | |
发表时间:2011-11-08
兄弟啊,就不能排排版吗,大家眼睛都花了。
|
|
返回顶楼 | |
发表时间:2011-11-09
表示看着很吃力!
|
|
返回顶楼 | |