永发信息网

软件设计模式的相近术语

答案:1  悬赏:50  手机版
解决时间 2021-01-26 15:34
软件设计模式的相近术语
最佳答案
对某个问题经常出现的、在设计中应该尽量避免的、坏的设计方案被称为反模式。 基础模式
委托模式
接口模式
代理模式 抽象工厂模式(Abstract Factory) ,提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。
生成器模式 (Builder),将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
工厂方法模式(Factory Method) ,定义一个用于创建对象的接口,让子类决定将哪一个类实例化。Factory Method使一个类的实例化延迟到其子类。
原型模式 (Prototype) ,用原型实例指定创建对象的种类,并且通过拷贝这个原型来创建新的对象。
单例模式(Singleton),保证一个类仅有一个实例,并提供一个访问它的全局访问点。 适配器模式 (Adapter) ,将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
桥接模式(Bridge) ,将抽象部分与它的实现部分分离,使它们都可以独立地变化。
组合模式(Composite) ,将对象组合成树形结构以表示“部分-整体”的层次结构。它使得客户对单个对象和复合对象的使用具有一致性。
容器模式
修饰模式 (Decorator) ,动态地给一个对象添加一些额外的职责。就扩展功能而言, 它比生成子类方式更为灵活。
扩展性模式
外观模式
享元模式
管道与过滤器模式
代理模式(Proxy) ,为其他对象提供一个代理以控制对这个对象的访问。 责任链模式 (Chain of Responsibility) ,为解除请求的发送者和接收者之间耦合,而使多个对象都有机会处理这个请求。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它。
命令模式 (Command) ,将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可取消的操作。
柯里化模式
事件监听器模式
解释器模式
迭代器模式
中介者模式
备忘录模式 (Memento) ,在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到保存的状态。
观察者模式(Observer) ,定义对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动刷新。
状态模式 (State) ,允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它所属的类。
策略模式 (Strategy) ,定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。本模式使得算法的变化可独立于使用它的客户。
模板方法模式
访问者模式 (Visitor),表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。
层次访问者模式 模式 Action at a distance
模式 Balking
模式 Guarded suspension
模式 Scheduler
模式 Read write lock
模式 Double checked locking
模式 Disable job requests while running job 模式 Scheduled task
模式 User interface
模式 Disable job requests while running job 此原则是由Bertrand Meyer提出的。原文是:Software entities should be open for extension,but closed for modification。就是说模块应对扩展开放,而对修改关闭。模块应尽量在不修改原(是原,指原来的代码)代码的情况下进行扩展。那么怎么扩展呢?我们看工厂模式factory pattern:假设中关村有一个卖盗版盘和毛片的小子,我们给他设计一光盘销售管理软件。我们应该先设计一光盘接口。如图:【pre】______________|<>|| 光盘 ||_____________||+卖() || ||_____________|【/pre】而盗版盘和毛片是其子类。小子通过DiscFactory来管理这些光盘。代码为: publicclassDiscFactory{publicstatic光盘getDisc(Stringname){return(光盘)Class.forName(name).getInstance();}}有人要买盗版盘,怎么实现呢?
public class 小子{ public static void main(String【】 args){ 光盘 d=DiscFactory.getDisc(盗版盘); 光盘.卖(); } }
如果有一天,这小子良心发现了,开始卖正版软件。没关系,我们只要再创建一个光盘的子类正版软件就可以了。不需要修改原结构和代码。怎么样?对扩展开放,对修改关闭。开-闭原则 工厂模式是对具体产品进行扩展,有的项目可能需要更多的扩展性,要对这个工厂也进行扩展,那就成了抽象工厂模式。 就是说要少用继承,多用合成关系来实现。我曾经这样写过程序:有几个类要与数据库打交道,就写了一个数据库操作的类,然后别的跟数据库打交道的类都继承这个。结果后来,我修改了数据库操作类的一个方法,各个类都需要改动。牵一发而动全身!面向对象是要把波动限制在尽量小的范围。
在Java中,应尽量针对Interface编程,而非实现类。这样,更换子类不会影响调用它方法的代码。要让各个类尽可能少的跟别人联系,不要与陌生人说话。这样,城门失火,才不至于殃及池鱼。扩展性和维护性才能提高
理解了这些原则,再看设计模式,只是在具体问题上怎么实现这些原则而已。张无忌学太极拳,忘记了所有招式,打倒了玄幂二老,所谓心中无招。设计模式可谓招数,如果先学通了各种模式,又忘掉了所有模式而随心所欲,可谓OO之最高境界。呵呵,搞笑,搞笑!(JR)
依赖倒转原则抽象不应该依赖与细节,细节应当依 类为子类继承,一般包含这个系的共同属性和方法。注意:好的继承关系中,只有叶节点是具体类,其他节点应该都是抽象类,也就是说具体类是不被继承的。将尽可能多的共同代码放到抽象类中。 7 迪米特法则最少知识原则。不要和陌生人说话。

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
你在忙什么呢 何が忙しいですか。对吗
本人不同意旅行社有权利注销我的签证吗
已知代数式3x的平方减4x加六的值为9,则x的平
赵匡胤的太祖长拳和盘龙棍法在金庸小说中能排
比亚迪元怎么样?值得买吗?
联想700s笔记本忘记密码怎么办
兄弟电脑维修(荆山北路金骑士木业斜对面)地址
PR CS4 导出不清晰问题。
思想解放是社会变革的先导,思想解放能促进社
成语被甲持兵的意思是什么啊?有知道释义的请
雪视亮眼镜地址在什么地方,我要处理点事
英华电脑怎么去啊,我要去那办事
吴彦祖和吴镇宇有血缘关系吗
什么是月亮星座
我用曲酒泡麝香好久才有香味呢
推荐资讯
《烽火佳人》中的周庭琛后来死了么
江雅装饰五金电动工具商店地址有知道的么?有
成语取长弃短的意思是什么啊?有知道释义的请
功能祛风通络,凉血消肿的药物是A.木瓜B.五加
以枪乌贼的粗大神经纤维作材料,在神经纤维
紧急求助!朋友在下班途中发生交通事故死亡,
如何强化专业管理指导,检查,考核,营造比学
冒险岛各个等级吸怪地图及具提位置
川楝子元胡炙甘草白芍当归白蔻炒白术茯神薄荷
六安红街到六安光彩大市场做几路车
我是上海的~打电话的话,手机开通什么套餐比较
烫伤创面感染了,怎么处理,现在在家里用
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?