24
回答
设计模式除了带来类爆炸之外,没有任何价值 -- 两个凡是
破译“粽”子代码,拿最高悬赏!>>>   

为了处理输入输出

要构建无数个乱伦关系的类

就是设计模式带来的价值

举报
宏哥
发帖于4个月前 24回/2K+阅
共有24个回帖 最后回答: 4个月前
虽然我宏哥脑残粉,但是也要指出宏哥的错误,设计模式跟输入输出有个毛线关系
--- 共有 2 条评论 ---
快速开发师设计模式是对应用的方向明确,并非类的爆炸;Java的面向对象继承等特性,导致了“这么样用”会产生很多可选方式,而设计模式地出现正式指明了主要的大多数场景下的运用方式,要不然类的运用方法会更加泛滥,相反不是爆炸,而是减少。 4个月前 回复
快速开发师PHP也拿来写人工智能的代码我里个去,可想而知读的懂不,只有java还可以面向对象一下,模式一下,php是卵的。 4个月前 回复

引用来自“235235”的评论

虽然我宏哥脑残粉,但是也要指出宏哥的错误,设计模式跟输入输出有个毛线关系

你所指既是问题所在

软件就是用来处理输入输出的

但是, 设计模式和输入输出毛关系没有, 就是瞎搞

--- 共有 2 条评论 ---
notreami设计模式,OOP都特么扯皮了20年了。看着都烦。 4个月前 回复
不日小鸡宏哥说的输入输出跟程序员说的输入输出有个毛关系,具体看楼下那个贴代码的 就我工作过或者接触过的公司的代码都是过渡设计 4个月前 回复

FileOutputStream fos = null;
OutputStreamWriter osw = null;
BufferedWriter bw = null;
try {
	fos = new FileOutputStream(file, true);
	osw = new OutputStreamWriter(fos, "gbk");
	bw = new BufferedWriter(osw);
	
	//...
	
} catch (Exception e) {
	throw e;
}finally {
	if (bw != null) {
		bw.close();
	}
	if (osw != null) {
		osw.close();
	}
	if (fos != null) {
		fos.close();
	}
}



理解题主的意思是认为类似上述代码比较啰嗦。java语言上确实啰嗦。

其实你可以把这东西自己再封装一层变成一个类来调用不就解决了。



--- 共有 9 条评论 ---
秦彪 回复 @eechen : 你这样说就没意思了啊。原生调用简单不一定说明底层实现也简单啊。java原生保存文件确实麻烦,要new一堆东西,完了还要一个一个去关闭。但是你敢保证你的PHP底层没有打开文件操作没有关闭流的操作吗?这只能说明PHP的代码更上一些,Java稍微要底层一些。上层的好处就是用户使用起来方便,底层的好处就是灵活性更高,更适用于一些奇奇怪怪的场景。一句话保存自己封装类一样的。 3个月前 回复
不日小鸡回复 @eechen : 呵呵 4个月前 回复
eechen回复 @不日小鸡 : Java封装难道不用时间?封装不需要额外的代码量?而PHP可是直接就用,原生支持这样写,明显有很大区别嘛. 4个月前 回复
不日小鸡回复 @eechen : java一样可以封装成一行代码调用,争论这个有什么意义,黑都没黑到点 4个月前 回复
eechen回复 @不日小鸡 : 原生PHP一行代码就可以把远程图片保存到本地: file_put_contents('/tmp/logo.gif',file_get_contents('https://www.baidu.com/img/bdlogo.gif')); 用原生Java你得几行代码呀?真没必要为Java的不足之处辩驳. 4个月前 回复

是的。

如果DP用到不该用的地方,或者好东西用错了,那么就是累赘。

一般我个人是先实现,然后git commit,然后用DP来简化,如果类突然暴增,就要跟别人一道讨论研究下问题到底出在哪里。

单例模式也类爆炸了吗?宏哥写的框架没有任何设计模式?

设计模式是实践总结,而不是八股文, 即使没学习过设计模式的人, 当积累了一定经验,也在不知不觉中写出了符合设计模式的代码.  

每个人组织代码的习惯, 也称得上自己的设计模式. 宏哥你的两个凡是,就是典型的设计模式,虽然它会毒害人,但的确是你的模式.

流行的设计模式,是从大多数开发实践中提炼出的,可以省却你自己摸索总结所耗费的时间和精力, 也可以为项目标准化和团队代码标准化提供有力的支撑. 聪明的人, 是善于学习利用的.


--- 共有 13 条评论 ---
justicewhite0同感,工作几年后,很多改善后的代码自然而然的和设计模式暗合。java,C#和PHP都用过,简单到就像写个公共函数用的类,很多烂手写成耦合度非常高的,改动模型很费劲是小事,一个文件N个业务同时用,你改个东西能不能传上去都得问问之前动过的人是不是可以传,而这个文件调用的其他耦合高的文件里的函数也去沟通,人家新的东西传了,你再传才能不出错。而犯这种错误的居然有年龄比我大接近10岁的,他们真应该学下模式 3个月前 回复
inuxor回复 @honey_fansy : 蛤? 4个月前 回复
honey_fansy回复 @eechen : 单线程说什么单例,单例是解决多线程出现的问题 4个月前 回复
eechen数据库连接要用单例吧,在原生PHP里用一个static $db;if($db) { return $db; } else { $db = new PDO(); }就OK了,哪还需要扯什么高大上的设计模式呀. 4个月前 回复
NewDever回复 @公孙二狗 : 是啊,不同的世界,他们的世界,木讷,呆板,僵硬,跟木头一类的东西。已经坏了,不能用了,这样的木头,不能拥有女朋友。 4个月前 回复

引用来自“朱__朱”的评论

单例模式也类爆炸了吗?宏哥写的框架没有任何设计模式?

设计模式是实践总结,而不是八股文, 即使没学习过设计模式的人, 当积累了一定经验,也在不知不觉中写出了符合设计模式的代码.  

每个人组织代码的习惯, 也称得上自己的设计模式. 宏哥你的两个凡是,就是典型的设计模式,虽然它会毒害人,但的确是你的模式.

流行的设计模式,是从大多数开发实践中提炼出的,可以省却你自己摸索总结所耗费的时间和精力, 也可以为项目标准化和团队代码标准化提供有力的支撑. 聪明的人, 是善于学习利用的.


基本上用独立的类完成独立的小功能

然后用输入输出连接起来

没有设计模式 -- 唯一的设计模式

--- 共有 14 条评论 ---
春药之王@宏哥 回复@宏哥 : 一个工具类代码,最多是改良了原有的,到头来还是用fopen(如果变量名意义正确),你想表达什么?证明你的php层负责的业务简单吗 4个月前 回复
宏哥回复 @春药之王 : https://git.oschina.net/brh/http/blob/master/http.php . 我的代码都是这种风格的。 4个月前 回复
乌龟壳回复 @春药之王 : OK 4个月前 回复
春药之王@乌龟壳 回复@乌龟壳 : 你和宏哥逻辑都有点不对。宏哥想说明的是:我业务复杂,并且不用设计模式,效果好。我想说明的是,宏哥的php层业务简单(调过程,拼结果),不适合设计模式,所以误以为设计模式没用。不牵扯具体实际业务。问题本质还是在于,设计模式主要作用在于复用及其管理,对于有大量不同层次复用的业务,不参考设计模式才会类爆炸。 4个月前 回复
乌龟壳回复 @春药之王 : 最好说下具体要解决的问题,比如你的业务是用java开发一个数据库,那又符合不用存储过程,又符合比供应链复杂。 4个月前 回复
顶部