-
java 设计模式(方法、经验)0
请问下 :我现在有个类,目前类里的代码已经有700多行了,类里有个检验的方法,这个方法大致都是一些判断验证操作
if(类型1){
类型1的一些判断验证操作
if(1.1){
数据验证操作
}else if(1.2){
数据验证操作
}
} else if(类型2){
类型2的一些判断验证操作
if(2.1){
数据验证操作
}else if(2.2){
数据验证操作
}
}else if(类型3){
类型2的一些判断验证操作
if(3.1){
数据验证操作
}else if(3.2){
数据验证操作
}else .......
就是这样的一些验证判断写了700多行代码。现在,同事说我这个类代码太多,判断逻辑太多,可能会造成以后不易维护。叫我考虑用一种设计模式或者其他方式将这个类重写下,让这个类简洁清晰些,请问各位,我应该怎么做呢。我经验不足,对设计模式不是怎么熟悉,请各位帮忙指点指点,看看有什么其他经验、方法可以借鉴!
2013年3月18日 11:15
8个答案 按时间排序 按投票排序
-
采纳的答案
可根据以下步骤,完成重构:
1、将if-else 抽取出来,构建出一个集成体系,这属于策略模式
父类为strategy,子类为各种情况下的校验实现
2、在原方法中if-else分支,面向抽象编程
使用简单工厂,根据你的类型,从配置文件取出相应实现
strategy = Factory.getDetailStrategy(type);
strategy.doCheck();
用到的设计模式如下:
1、工厂模式+配置文件
2、策略模式
你仔细想想经过以上步骤之后,以后如果新添加一种校验,你是不是很容易的可以实现?
1、你只需要添加一个strategy的子类,实现新的校验算法。
2、然后在配置文件中,添加一种新的算法的配置即可。
总结:
面向对象编程的终极目的是:代码好维护,易扩展、够灵活。
而设计模式是将面向对象编程发挥到极致的途径。2013年3月19日 08:58
-
class Checker {
void check(data) {
docheck(data);
Checker sub = getSubChecker(data);
if(sub!=null){sub.check(data);}
}
abstract void docheck(data);
abstract Checker getSubChecker(data);
}
可以用组合模式和策略模式2013年3月18日 17:58
-
你可以代码抽取成方法或类就可以解决了,与设计模式没什么关系也是可以解决的啊,总之达到代码清晰。另外,java源代码很多类文件是大于700行的啊。
2013年3月18日 16:53
-
1.可以用enum 枚举来设置你的条件
2.可以用设置常量的方法
如:public class constant() {
public static final String CONDTION_1 = "1";
public static final String CONDTION_2 = "2";
Public static Map map = new HashMap();
static {
map .put("CONDTION_1",CONDTION_1);
map .put("CONDTION_2",CONDTION_2);
}
}2013年3月18日 14:05
-
我的建议:首先整理下验证规则,毕竟你这么多验证规则,抽象出共用的统一到抽象类中,不同的放置在具体子类中,然后把这些规则与条件进行绑定。
2013年3月18日 12:01
-
看你这些问题应该都是传入状态,然后根据状态执行对应的逻辑;在设计模式中有一种‘状态设计模式’应该可以满足你的需求;具体怎么用可以百度一下,
2013年3月18日 11:43
相关推荐
Java设计模式是面向对象编程领域中的重要概念,它是一套被广泛接受并实践的解决软件设计问题的经验总结。设计模式并非具体的代码或库,而是一种在特定情境下为了解决常见问题而制定的通用解决方案的描述。它们描述了...
Java 经典设计模式讲解以及项目实战 设计模式简介:主要介绍各种设计模式的概念和运用场景等 设计模式综合运用:主要是笔者在实际工作中运用到的一些设计模式综合运用事例的提炼 Spring设计模式简介:主要是讲述...
### Java设计模式详解 #### 一、背景与概念 在软件工程领域,设计模式是一种用于解决常见问题的可重用解决方案。《Java设计模式PDF》是一本由James W. Cooper编写的经典书籍,该书详细介绍了Java编程语言中的设计...
Java设计模式是软件工程中的一种最佳实践,它们是解决常见编程问题的经验总结,可以提高代码的可重用性、可维护性和可扩展性。在Java领域,熟练掌握设计模式是成为一个高级开发者的必要条件。本资源包含两部分:Java...
《Java设计模式》课程设计报告主要探讨了如何利用Java编程语言和MyEclipse集成开发环境来实现基于设计模式的西瓜市场系统。这个项目涵盖了四种重要的设计模式:单例模式、代理模式、建造者模式和抽象工厂模式,为...
### Java设计模式(刘伟) #### 一、引言 在《Java设计模式》这本书中,作者刘伟全面地介绍了24种经典的设计模式,并通过丰富的案例和代码示例进行了详细的解析。本书不仅适合初学者作为入门教材,也适合有一定...
Java设计模式是软件工程中的一种最佳实践,它总结了在特定场景下解决常见问题的经验,为程序员提供了可重用的解决方案。本资料“《java设计模式》课后习题模拟试题解答——刘伟.zip”主要涵盖了Java设计模式的学习与...
java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式...
《Java设计模式》是刘伟教授的一本关于设计模式的教材,主要面向高等学校的学生和对Java编程有深入兴趣的开发者。设计模式是软件工程中的一种重要思想,它封装了在特定场景下的问题解决方案,可以提高代码的可读性、...
java设计模式考试题全文共4页,当前为第1页。java设计模式考试题全文共4页,当前为第1页。 java设计模式考试题全文共4页,当前为第1页。 java设计模式考试题全文共4页,当前为第1页。 java设计模式考试题全文共4页,...
Java设计模式是软件工程中的一种最佳实践,它提供了一套标准的解决方案,用于解决在编写可维护、可扩展和高效代码时经常遇到的问题。这些模式是经验丰富的开发者们在面对相似问题时,经过反复试验和优化后总结出的...
《Java设计模式》是刘伟老师撰写的经典教材,它为Java程序员深入理解和应用设计模式提供了极佳的学习资源。设计模式作为软件工程中解决特定问题的典型方案,是每一个有志于成为高级开发者的程序员不可或缺的知识储备...
设计模式示例代码(java)设计模式示例代码(java)v设计模式示例代码(java)设计模式示例代码(java)设计模式示例代码(java)设计模式示例代码(java)设计模式示例代码(java)设计模式示例代码(java)设计模式示例代码(java)...
在软件开发领域,设计模式是经验丰富的开发者们总结出的解决常见问题的最佳实践。Java作为一门广泛应用的开发语言,其设计模式的应用对于提高代码质量、可维护性和可扩展性至关重要。本文将着重探讨创建型模式、结构...
" JAVA 设计模式概述" JAVA 设计模式是指在软件设计过程中,为了提高代码的可维护性、灵活性和可扩展性所使用的一些惯用解决方案。JAVA 设计模式可以分为三种:创建模式、结构模式和行为模式。 1. 创建模式 创建...
《Head First 设计模式》与《Java设计模式(第2版)》是两本非常重要的IT书籍,专注于软件开发中的设计模式。设计模式是解决软件设计中常见问题的经验总结,它们提供了一种标准的方法来处理特定场景下的问题,使得代码...
《Java设计模式(疯狂Java联盟版)》是深入探讨Java编程中设计模式的一本权威著作。设计模式是软件工程中的重要概念,它总结了...无论是初学者还是经验丰富的开发者,这本书都是深入理解和掌握Java设计模式的宝贵资源。
使用5种设计模式完成的一个点单系统,显示不同系列下的所有商品,点击选择冰度甜度之后添加到订单中,计算总金额,下单之后发送订单到门店的后厨制作商品。使用了抽象工厂模式、装饰模式、单例模式、代理模式、原型...
Java 设计模式,第二版,电子工业出版社出版 本书通过一个完整的Java项目对经典著作Design Patterns一书介绍的23种设计模式进行了深入分析与讲解,实践性强,却又不失对模式本质的探讨。本书创造性地将这些模式分为...