avatar
如何动态定义类和方法# Programming - 葵花宝典
m*r
1
想请教一下大家,J1(不是学生)的收入是fellowship, 是用US-china treaty的
article 19 还是20(b) 免税呢?拿到的是1042-S, income code写16(fellowship)...
去年的退税现在都还没收到,怀疑是自己把用哪个条款填错了...
avatar
x*2
2
Form 2441 Part III line13 and14 怎么填??
FSA算的财政年,7月1日到第二年6.30,不知该怎么算carry over 和carry forward
avatar
G*G
3
一些类:三角形,长方形,圆,
每个类有它自己的参数,和方法(计算面积)
现在读取一个文本,
每一行是类名和参数
类名;参数
比如:圆;半径5
这样的行数总共为10行。
请问如何动态的定义初始化类呢?
比如第一行
Circle ciircle_line1 = new Circle(5)
avatar
s*u
4
直接去税务局面谈,你带着表格的复印件,社安卡,以及相关的记录,如W2表等。
你可能填错N个地方,自己不知道错在哪儿。网上随便问无意义。

【在 m***r 的大作中提到】
: 想请教一下大家,J1(不是学生)的收入是fellowship, 是用US-china treaty的
: article 19 还是20(b) 免税呢?拿到的是1042-S, income code写16(fellowship)...
: 去年的退税现在都还没收到,怀疑是自己把用哪个条款填错了...

avatar
p*2
5
pass a hm

【在 G***G 的大作中提到】
: 一些类:三角形,长方形,圆,
: 每个类有它自己的参数,和方法(计算面积)
: 现在读取一个文本,
: 每一行是类名和参数
: 类名;参数
: 比如:圆;半径5
: 这样的行数总共为10行。
: 请问如何动态的定义初始化类呢?
: 比如第一行
: Circle ciircle_line1 = new Circle(5)

avatar
G*G
6
请问什么叫hm?
能给个link,学习学习吗?

【在 p*****2 的大作中提到】
: pass a hm
avatar
p*2
7
hashmap

【在 G***G 的大作中提到】
: 请问什么叫hm?
: 能给个link,学习学习吗?

avatar
G*G
8
hashmap 的成员不都是字符串吗? 怎么能是类和方法呢?

【在 p*****2 的大作中提到】
: hashmap
avatar
p*2
9
java的局限
看看js

【在 G***G 的大作中提到】
: hashmap 的成员不都是字符串吗? 怎么能是类和方法呢?
avatar
a*e
10
python

【在 G***G 的大作中提到】
: 一些类:三角形,长方形,圆,
: 每个类有它自己的参数,和方法(计算面积)
: 现在读取一个文本,
: 每一行是类名和参数
: 类名;参数
: 比如:圆;半径5
: 这样的行数总共为10行。
: 请问如何动态的定义初始化类呢?
: 比如第一行
: Circle ciircle_line1 = new Circle(5)

avatar
g*g
11
你们成天鄙视Java,没有一个过关的呀。
interface Shape {
int area(int... params);
}
class Circle implements Shape {
@Override
public int area(int...params) {
return 0;
}

}
public int getArea(String clazz, int... params) throws Exception {
Shape shape = (Shape)Class.forName(clazz).newInstance();
return shape.area(params);
}
avatar
G*G
13
多谢!
仿佛看到曙光

【在 d****n 的大作中提到】
: interface 是正解。
: 你要是非要动态编译的话,看看eval and reflection.
: http://stackoverflow.com/questions/3862226/dynamically-create-a
: 我保证你最后饶来饶去发现这些类还是用共性,也就是interface.
: interface shape {
: dictionary attributes;
: dictionary methods;
: }

avatar
G*G
14
多谢!

【在 g*****g 的大作中提到】
: 你们成天鄙视Java,没有一个过关的呀。
: interface Shape {
: int area(int... params);
: }
: class Circle implements Shape {
: @Override
: public int area(int...params) {
: return 0;
: }
:

avatar
d*n
15
再说点哈。
难得不是动态编译,而是怎么用,怎么去调用共性,特性。想来想去就不用动态编译了
,呵呵。

【在 G***G 的大作中提到】
: 多谢!
avatar
l*t
16
case class +trait,再sealed,停不下来
avatar
p*2
17
你这个跟我理解的问题不一样

【在 g*****g 的大作中提到】
: 你们成天鄙视Java,没有一个过关的呀。
: interface Shape {
: int area(int... params);
: }
: class Circle implements Shape {
: @Override
: public int area(int...params) {
: return 0;
: }
:

avatar
Y*G
18
直接写入Spring容器,放在xml文件中让Spring去装配。

【在 G***G 的大作中提到】
: 一些类:三角形,长方形,圆,
: 每个类有它自己的参数,和方法(计算面积)
: 现在读取一个文本,
: 每一行是类名和参数
: 类名;参数
: 比如:圆;半径5
: 这样的行数总共为10行。
: 请问如何动态的定义初始化类呢?
: 比如第一行
: Circle ciircle_line1 = new Circle(5)

avatar
y*u
19
Java reflection
Class.forName("Circle").getMethod("area", double.class).invoke(Shape.class,
5);

【在 G***G 的大作中提到】
: 一些类:三角形,长方形,圆,
: 每个类有它自己的参数,和方法(计算面积)
: 现在读取一个文本,
: 每一行是类名和参数
: 类名;参数
: 比如:圆;半径5
: 这样的行数总共为10行。
: 请问如何动态的定义初始化类呢?
: 比如第一行
: Circle ciircle_line1 = new Circle(5)

avatar
b*s
20
不就是读配置文件来初始化对象么,那么简单的东西
avatar
b*s
21
用traits足以做事先都没有定义过的类,也就是根据文件可以在编译期形成代码,比
java那套强多了。比如上面某位提供的都要是已经有代码实现的类,比如接口是多边形
,他得事先写好五边形六边形三角什么的,弱爆了
avatar
N*K
22
这东西我还没用过 有啥入门读物?

【在 b*******s 的大作中提到】
: 用traits足以做事先都没有定义过的类,也就是根据文件可以在编译期形成代码,比
: java那套强多了。比如上面某位提供的都要是已经有代码实现的类,比如接口是多边形
: ,他得事先写好五边形六边形三角什么的,弱爆了

avatar
g*g
23
用点脑子行不?不同形状计算面积的方法难道是一样的?但凡不一样难道你不用定义不
同的计算方法?但凡方法实现不一样难道封装到类使用同样接口不是最干净的设计。本
班水平实在太低了,trait根本不是你这么用的。真要用Java 8也有相似的default
method.

【在 b*******s 的大作中提到】
: 用traits足以做事先都没有定义过的类,也就是根据文件可以在编译期形成代码,比
: java那套强多了。比如上面某位提供的都要是已经有代码实现的类,比如接口是多边形
: ,他得事先写好五边形六边形三角什么的,弱爆了

avatar
N*n
24

switch (name) {
case "class1": new class1 ....
case "class2": new class2 ...
}

【在 G***G 的大作中提到】
: 一些类:三角形,长方形,圆,
: 每个类有它自己的参数,和方法(计算面积)
: 现在读取一个文本,
: 每一行是类名和参数
: 类名;参数
: 比如:圆;半径5
: 这样的行数总共为10行。
: 请问如何动态的定义初始化类呢?
: 比如第一行
: Circle ciircle_line1 = new Circle(5)

avatar
g*g
25
你这要有100个类,代码不是一般的丑陋。回头加个类还得跟着改这个文件。对设计模
式完全没有sense.

【在 N********n 的大作中提到】
:
: switch (name) {
: case "class1": new class1 ....
: case "class2": new class2 ...
: }

avatar
b*s
26
Tell me sth about cpp traits

【在 g*****g 的大作中提到】
: 用点脑子行不?不同形状计算面积的方法难道是一样的?但凡不一样难道你不用定义不
: 同的计算方法?但凡方法实现不一样难道封装到类使用同样接口不是最干净的设计。本
: 班水平实在太低了,trait根本不是你这么用的。真要用Java 8也有相似的default
: method.

avatar
g*g
27
你就省省吧,不服就把代码写出来让大家笑话一下。

【在 b*******s 的大作中提到】
: Tell me sth about cpp traits
avatar
b*s
28
你还真是黄皮阿三

【在 g*****g 的大作中提到】
: 你就省省吧,不服就把代码写出来让大家笑话一下。
avatar
g*g
29
你说这话有用吗?是骡子是马拉出来溜溜。我老代码放在那里,你丫不服写个更好的大
家看看就是。明明基本功不行,非要装逼乱发评论。这可不是12306还能胡扯,就几行
代码的事情你都光说不练。

【在 b*******s 的大作中提到】
: 你还真是黄皮阿三
avatar
N*n
30

SWITCH CASE就是给少量几个类用的, 真多了再说。

【在 g*****g 的大作中提到】
: 你这要有100个类,代码不是一般的丑陋。回头加个类还得跟着改这个文件。对设计模
: 式完全没有sense.

avatar
g*g
31
多少还在其次,增加一种形状不改这个类的实现是设计模式的基本要求。

【在 N********n 的大作中提到】
:
: SWITCH CASE就是给少量几个类用的, 真多了再说。

avatar
d*i
32
你还别说,看来看去还就是好虫提供的解法最干净整洁,OO加上反射,正好简单明了的
解决了楼主的问题。不要什么东西都想着“叛逆,反传统"这种左逼嘻皮士字眼,编程
不相信眼泪,相信能真正的work。

【在 b*******s 的大作中提到】
: 用traits足以做事先都没有定义过的类,也就是根据文件可以在编译期形成代码,比
: java那套强多了。比如上面某位提供的都要是已经有代码实现的类,比如接口是多边形
: ,他得事先写好五边形六边形三角什么的,弱爆了

avatar
N*n
34

想罩住未来增加类先把int类型换成obj,否则一个类特殊整个子类都要改。

【在 g*****g 的大作中提到】
: 多少还在其次,增加一种形状不改这个类的实现是设计模式的基本要求。
avatar
g*g
35
那就是个伪码,为了说明问题。

【在 N********n 的大作中提到】
:
: 想罩住未来增加类先把int类型换成obj,否则一个类特殊整个子类都要改。

avatar
b*s
36
几行示意代码,看得懂看不懂你们自己的事
const std::string shapes[] = {"circle:3.14:10:_2^2*_1","rectangle:4:3:_1*_2"
};
class Euclidean final
{
...
};
class Descartes final
{
...
};
// the interface
const int protocol_version = 101; // 1.01
std::conditional::type calc;
calc.calc_area(shapes,results);
avatar
g*g
37
设计模式强调的就是如何降低耦合,增加一个形状不修改原来代码就是个基本要求。尼
玛基础这么差能把C++写成这样还出来现真是奇葩。我就不说数据和方法分离这种最最
基本的要求了。第三方输入个数据居然连方法都得给。
avatar
b*s
38
no surprise you cant understand. OO is the only paradigm you know
my solution could accept new shapes without changing any code. could yours?
if there are 10k new shapes, you have to write 10k new get_area()
but mime don't have to.

【在 g*****g 的大作中提到】
: 设计模式强调的就是如何降低耦合,增加一个形状不修改原来代码就是个基本要求。尼
: 玛基础这么差能把C++写成这样还出来现真是奇葩。我就不说数据和方法分离这种最最
: 基本的要求了。第三方输入个数据居然连方法都得给。

avatar
g*g
39
尼玛居然可以这么弱智。假定我们现在有个正五边形。我狗一次把它实现了,黑大妈知
道边长都可以调用得到面积。
你的用户每次用都要狗一次,能把表达式写对就不是一般人。下次用还得再狗。就这你
垃圾代码还拿出来丢人呢?你那破实现需要什么Euclidean之类的装逼吗?直接parse
数据就行了。

【在 b*******s 的大作中提到】
: no surprise you cant understand. OO is the only paradigm you know
: my solution could accept new shapes without changing any code. could yours?
: if there are 10k new shapes, you have to write 10k new get_area()
: but mime don't have to.

avatar
b*s
40
就这智力还敢说。这只是个示意代码,真正的数学公式实际上是单独放一个配置文件的
,需要每个描述后面都放一个?
这个实现最适合用户了,要什么新的形状,输一次公式就行,基本用户只要修改几个文
本文件,完全解耦。不要麻烦程序猿改代码,就你这黑大妈水平看不懂

【在 g*****g 的大作中提到】
: 尼玛居然可以这么弱智。假定我们现在有个正五边形。我狗一次把它实现了,黑大妈知
: 道边长都可以调用得到面积。
: 你的用户每次用都要狗一次,能把表达式写对就不是一般人。下次用还得再狗。就这你
: 垃圾代码还拿出来丢人呢?你那破实现需要什么Euclidean之类的装逼吗?直接parse
: 数据就行了。

avatar
b*s
41
欧拉笛卡尔那个就是演示了我不用就不创建,根据配置生成了需要的对象,只会oo的还
不是不管用不用都创建一堆废物代码
avatar
b*s
42
本来不想解释,考虑到本版确实智商一般,其实还有几种方法实现,讲了也不懂的,就
知道死写几千个大同小异的傻实现
avatar
g*g
43
你丫是不是傻逼呀?把数据和公式放在一个字符串里现在跟我说只是示意代码?
你那破东西需要整什么神神叨叨的traits? 还弄俩完全没有的类。最简单的C parse个
配置文件不一样做了。
用C++把数据类型全丢了,还他妈得意了。

【在 b*******s 的大作中提到】
: 就这智力还敢说。这只是个示意代码,真正的数学公式实际上是单独放一个配置文件的
: ,需要每个描述后面都放一个?
: 这个实现最适合用户了,要什么新的形状,输一次公式就行,基本用户只要修改几个文
: 本文件,完全解耦。不要麻烦程序猿改代码,就你这黑大妈水平看不懂

avatar
b*s
44
老魏说得一点不错,井底之蛙加胡搅蛮缠,你自己撸吧,早点拿绿卡

【在 g*****g 的大作中提到】
: 你丫是不是傻逼呀?把数据和公式放在一个字符串里现在跟我说只是示意代码?
: 你那破东西需要整什么神神叨叨的traits? 还弄俩完全没有的类。最简单的C parse个
: 配置文件不一样做了。
: 用C++把数据类型全丢了,还他妈得意了。

avatar
b*s
45
好汉难日打滚的b
avatar
g*g
46
你现在承认那俩是装逼对象了?是个语言parse个配置文件都能把这做了,需要traits
干啥?
我老再跟你讲讲为什么你是傻逼吧。就说这个parse配置文件,假定刚开始你支持加减
乘除。后来形状复杂了,什么sin/cos都来了,怎么办?改parser。接下来更复杂了,
什么一阶二阶导数都来了,怎么办,继续改parser。要保证没regression可难了。相比
之下我就加个形状实现,如果我的实现错了,也就是这个新的形状面积算错而已,其他
形状相关的代码完全没动,是不会产生regression的。你啥不用改代码只不过一厢情愿
而已。
你小在软件工程上的道行跟我差了很多光年,还是不要出来丢脸了。

【在 b*******s 的大作中提到】
: 欧拉笛卡尔那个就是演示了我不用就不创建,根据配置生成了需要的对象,只会oo的还
: 不是不管用不用都创建一堆废物代码

avatar
b*s
47
traits是干什么的?你没做过就少乱说,parser不用traits?
加一个parser功能,所有shapes都用,比你重复写哪个更合理
就一嘴硬的傻b

traits

【在 g*****g 的大作中提到】
: 你现在承认那俩是装逼对象了?是个语言parse个配置文件都能把这做了,需要traits
: 干啥?
: 我老再跟你讲讲为什么你是傻逼吧。就说这个parse配置文件,假定刚开始你支持加减
: 乘除。后来形状复杂了,什么sin/cos都来了,怎么办?改parser。接下来更复杂了,
: 什么一阶二阶导数都来了,怎么办,继续改parser。要保证没regression可难了。相比
: 之下我就加个形状实现,如果我的实现错了,也就是这个新的形状面积算错而已,其他
: 形状相关的代码完全没动,是不会产生regression的。你啥不用改代码只不过一厢情愿
: 而已。
: 你小在软件工程上的道行跟我差了很多光年,还是不要出来丢脸了。

avatar
g*g
48
你丫被实例完全击垮,已经开始语无伦次了。你丫这破东西需要啥traits,就是几个参
数替代而已。改parser和增加shape的区别,更是你完全不能理解的。你要觉得加配置
文件改parser比加一个Shape好,我们就不需要继续讨论了。
你反正跟太监是一个路数。

【在 b*******s 的大作中提到】
: traits是干什么的?你没做过就少乱说,parser不用traits?
: 加一个parser功能,所有shapes都用,比你重复写哪个更合理
: 就一嘴硬的傻b
:
: traits

avatar
b*s
49
你又宣布胜利了,还能玩点新鲜的吗
配置来解耦是linux/unit很自然的想法,不会写代码的也能改变软件特性。比如题主打
开文本,加了十几个字母,哇,支持了一种新类型了,也就你这种不理解其中的便利,
非要每次写一堆大部分重复的新代码,然后几百上千个类看了前面忘记后面。

【在 g*****g 的大作中提到】
: 你丫被实例完全击垮,已经开始语无伦次了。你丫这破东西需要啥traits,就是几个参
: 数替代而已。改parser和增加shape的区别,更是你完全不能理解的。你要觉得加配置
: 文件改parser比加一个Shape好,我们就不需要继续讨论了。
: 你反正跟太监是一个路数。

avatar
g*g
50
我需要宣布胜利吗?比如写C++,我只会按C++规范写个新类计算面积,你就非要把C++
compiler改了,加上配置文件生生把新形状面积算了。你丫实在太牛逼了。

【在 b*******s 的大作中提到】
: 你又宣布胜利了,还能玩点新鲜的吗
: 配置来解耦是linux/unit很自然的想法,不会写代码的也能改变软件特性。比如题主打
: 开文本,加了十几个字母,哇,支持了一种新类型了,也就你这种不理解其中的便利,
: 非要每次写一堆大部分重复的新代码,然后几百上千个类看了前面忘记后面。

avatar
b*s
51
你的c++认识,十几年前的东西了吧,少乱放屁了

+

【在 g*****g 的大作中提到】
: 我需要宣布胜利吗?比如写C++,我只会按C++规范写个新类计算面积,你就非要把C++
: compiler改了,加上配置文件生生把新形状面积算了。你丫实在太牛逼了。

avatar
b*s
52
肯定没做过复杂的parser 居然说用不到traits 还敢放屁, 都当人是你这样靠google
来找方案的二把刀啊
avatar
g*g
53
实现个不同形状面积的算法哪里重复了?你丫能再弱智一些吗?什么东西不是多一层
indirection一样都能做,但没有好处地放弃compiler的类型检查,毫无意义地去写个
多余parser,本来就是个弱智的做法。我可能写几百上千个类写了后面忘了前面,那是
因为后面跟前面完全无关,我可不像你parser一会不够用了又得改一次。

【在 b*******s 的大作中提到】
: 你又宣布胜利了,还能玩点新鲜的吗
: 配置来解耦是linux/unit很自然的想法,不会写代码的也能改变软件特性。比如题主打
: 开文本,加了十几个字母,哇,支持了一种新类型了,也就你这种不理解其中的便利,
: 非要每次写一堆大部分重复的新代码,然后几百上千个类看了前面忘记后面。

avatar
g*g
54
我没做过复杂的parser是没错,我只知道C++加新类的事情常有,改compiler的事情很
少,像你这样为了避免加新类改parser的傻逼是生平仅见。

google

【在 b*******s 的大作中提到】
: 肯定没做过复杂的parser 居然说用不到traits 还敢放屁, 都当人是你这样靠google
: 来找方案的二把刀啊

avatar
b*s
55
改你妈的compiler,少放屁好不好

【在 g*****g 的大作中提到】
: 我没做过复杂的parser是没错,我只知道C++加新类的事情常有,改compiler的事情很
: 少,像你这样为了避免加新类改parser的傻逼是生平仅见。
:
: google

avatar
b*s
56
你果然根本不能理解

【在 g*****g 的大作中提到】
: 实现个不同形状面积的算法哪里重复了?你丫能再弱智一些吗?什么东西不是多一层
: indirection一样都能做,但没有好处地放弃compiler的类型检查,毫无意义地去写个
: 多余parser,本来就是个弱智的做法。我可能写几百上千个类写了后面忘了前面,那是
: 因为后面跟前面完全无关,我可不像你parser一会不够用了又得改一次。

avatar
g*g
57
该说的我都说了,你丫一个外行弱智,非打肿脸充胖子。任何一个语言都能实现的
parser非扯什么traits,真她妈够装逼的。
号称写几行代码我们能不能理解看着办,最后居然就剩几行数据和逻辑混合的字符串。
其他都是他妈没用的代码。

【在 b*******s 的大作中提到】
: 你果然根本不能理解
avatar
b*s
58
傻b没做过的还那么自信

【在 g*****g 的大作中提到】
: 该说的我都说了,你丫一个外行弱智,非打肿脸充胖子。任何一个语言都能实现的
: parser非扯什么traits,真她妈够装逼的。
: 号称写几行代码我们能不能理解看着办,最后居然就剩几行数据和逻辑混合的字符串。
: 其他都是他妈没用的代码。

avatar
b*s
59
所以说是黄皮阿三,一点不错
avatar
g*g
60
C有traits吗?C能实现你这个功能吗?你丫弱智还非要死挺到底是吧?

【在 b*******s 的大作中提到】
: 傻b没做过的还那么自信
avatar
b*s
61
傻b才明明有刀叉筷子还要用手,黄皮阿三不懂的

【在 g*****g 的大作中提到】
: C有traits吗?C能实现你这个功能吗?你丫弱智还非要死挺到底是吧?
avatar
g*g
62
傻逼你不是牛逼哄哄的用traits才能实现吗?现在连最后的遮羞布都不要了?弄半天你
就写俩公式加上数据的字符串就算实现了,什么parser可是没影呀,跟太监的计数器的
确有异曲同工之妙。你丫跟太监一样,装逼水平很高,一打脸实力是低到没有底线的。

【在 b*******s 的大作中提到】
: 傻b才明明有刀叉筷子还要用手,黄皮阿三不懂的
avatar
b*s
63
你他妈除了 我很牛 你不行 这两招还有点新花样吗。看你那个屎一样的设计

【在 g*****g 的大作中提到】
: 傻逼你不是牛逼哄哄的用traits才能实现吗?现在连最后的遮羞布都不要了?弄半天你
: 就写俩公式加上数据的字符串就算实现了,什么parser可是没影呀,跟太监的计数器的
: 确有异曲同工之妙。你丫跟太监一样,装逼水平很高,一打脸实力是低到没有底线的。

avatar
b*s
64
你他妈的就是类似围棋庸手,只会定式,一变妈的就死命往定式上拽。蠢材
avatar
g*g
65
我老只不过用reflection实现了一个最普通的Factory Pattern, 你丫给GOF连提鞋都不
配。

【在 b*******s 的大作中提到】
: 你他妈除了 我很牛 你不行 这两招还有点新花样吗。看你那个屎一样的设计
avatar
g*g
66
你丫丢人了就死撑有蛋用?围棋一样秒杀你。

【在 b*******s 的大作中提到】
: 你他妈的就是类似围棋庸手,只会定式,一变妈的就死命往定式上拽。蠢材
avatar
y*u
67
你们两位大牛都省点心吧
有空多指点一下我们这些菜鸟比较好,每个人都有自己的观点,也没必要吵架吧

天你
样,

【在 b*******s 的大作中提到】
: 你他妈除了 我很牛 你不行 这两招还有点新花样吗。看你那个屎一样的设计
avatar
p*o
68
这都是GoF里面最基本的东西,先上factory,类太多了用prototype,需要组合
复杂图形用composite,最后parser太复杂写不清楚来个builder。

【在 y**********u 的大作中提到】
: 你们两位大牛都省点心吧
: 有空多指点一下我们这些菜鸟比较好,每个人都有自己的观点,也没必要吵架吧
:
: 天你
: 样,

avatar
g*g
69
是很基本,可是外行完全不懂,连狗屎设计都骂上了。本版流行不懂的都是狗屎。

【在 p***o 的大作中提到】
: 这都是GoF里面最基本的东西,先上factory,类太多了用prototype,需要组合
: 复杂图形用composite,最后parser太复杂写不清楚来个builder。

avatar
b*s
70
这样吧,我们各写一段程序,支持一万种shapes,比不比?

【在 g*****g 的大作中提到】
: 是很基本,可是外行完全不懂,连狗屎设计都骂上了。本版流行不懂的都是狗屎。
avatar
g*g
71
当然可以,你丫以为配置文件不是程序的一部分?太弱智了吧。

【在 b*******s 的大作中提到】
: 这样吧,我们各写一段程序,支持一万种shapes,比不比?
avatar
b*s
72
sure, you use your solution. I use mine.
Namely, derived classes vs parser?

【在 g*****g 的大作中提到】
: 当然可以,你丫以为配置文件不是程序的一部分?太弱智了吧。
avatar
g*g
73
We talk about complete solution, I couldn't care less what you want to use.
The truth, I had a working solution in this thread, you have a few strings
and parser is nowhere to be seen. You are such a joke it's not even funny.

【在 b*******s 的大作中提到】
: sure, you use your solution. I use mine.
: Namely, derived classes vs parser?

avatar
b*s
74
the only solution you provided is a class factory.
do u mean you will use it for 10k shapes?

【在 g*****g 的大作中提到】
: We talk about complete solution, I couldn't care less what you want to use.
: The truth, I had a working solution in this thread, you have a few strings
: and parser is nowhere to be seen. You are such a joke it's not even funny.

avatar
b*s
75
okay, I will write a script to generate 10k formulas & agruments of em. and
let's use them as test cases. what do you think?

【在 g*****g 的大作中提到】
: We talk about complete solution, I couldn't care less what you want to use.
: The truth, I had a working solution in this thread, you have a few strings
: and parser is nowhere to be seen. You are such a joke it's not even funny.

avatar
b*s
76
agree. but some people only knows factory

【在 p***o 的大作中提到】
: 这都是GoF里面最基本的东西,先上factory,类太多了用prototype,需要组合
: 复杂图形用composite,最后parser太复杂写不清楚来个builder。

avatar
g*g
77
Sure, you are too native to think my architecture cannot incorporate a
parser for your white noise garbage formula, the builder pattern is there
for it. The truth is, most system may need a dozen shapes, and I don't need
to change my existing codes when adding a new one. And yours is exactly an
anti-pattern.
A parser can be used when it makes sense, not as a catch-all solution.

and

【在 b*******s 的大作中提到】
: okay, I will write a script to generate 10k formulas & agruments of em. and
: let's use them as test cases. what do you think?

avatar
b*s
78
you are replacing your 'solution'

need

【在 g*****g 的大作中提到】
: Sure, you are too native to think my architecture cannot incorporate a
: parser for your white noise garbage formula, the builder pattern is there
: for it. The truth is, most system may need a dozen shapes, and I don't need
: to change my existing codes when adding a new one. And yours is exactly an
: anti-pattern.
: A parser can be used when it makes sense, not as a catch-all solution.
:
: and

avatar
g*g
79
LOL, that's a 180 degree change, yesterday you said factory pattern is shit.

【在 b*******s 的大作中提到】
: agree. but some people only knows factory
avatar
g*g
80
No, it's not replacing solution. It's showing how a well-designed
architecture is
flexible. Incorporate a builder pattern for a factory when necessary is
just classic design pattern and again you have no knowledge of it. Don't
forget you didn't use factory pattern to begin with.

【在 b*******s 的大作中提到】
: you are replacing your 'solution'
:
: need

avatar
b*s
81
did I?

shit.

【在 g*****g 的大作中提到】
: LOL, that's a 180 degree change, yesterday you said factory pattern is shit.
avatar
g*g
82
I used a classic factory pattern and you call it shit. LOL. Thanks for
Google now you know what it is.

【在 b*******s 的大作中提到】
: did I?
:
: shit.

avatar
b*s
83
you are really a bold man.
I told ya your solution can't handle huge amt of new shapes in a simple way.
What a misleading you are making, buggy man

【在 g*****g 的大作中提到】
: I used a classic factory pattern and you call it shit. LOL. Thanks for
: Google now you know what it is.

avatar
g*g
84
LOL, you are so full of shit. My solution can easily call your parser to
solve the shapes you can handle, and handle shapes your parser can't handle
without single line of wasted code. If you believe your parse can solve all,
let's find out.

way.

【在 b*******s 的大作中提到】
: you are really a bold man.
: I told ya your solution can't handle huge amt of new shapes in a simple way.
: What a misleading you are making, buggy man

avatar
b*s
85
yep, so you will wait for my solution to make yours work. good point

handle
all,

【在 g*****g 的大作中提到】
: LOL, you are so full of shit. My solution can easily call your parser to
: solve the shapes you can handle, and handle shapes your parser can't handle
: without single line of wasted code. If you believe your parse can solve all,
: let's find out.
:
: way.

avatar
g*g
86
It shows my architecture is pluggable, can't say the same for yours. This is
what design pattern is all about.

【在 b*******s 的大作中提到】
: yep, so you will wait for my solution to make yours work. good point
:
: handle
: all,

avatar
b*s
87
who cares about your f**king pluggable ass. it is an overkill in this case.
and it makes no good to solve the problem. your shit solution still requires
mine to work.
and if it is required, won't take 1 minute to do it.
一块钱夹在镜框里当宝

is

【在 g*****g 的大作中提到】
: It shows my architecture is pluggable, can't say the same for yours. This is
: what design pattern is all about.

avatar
g*g
88
You know what's overkill? Bullshit for 2 days and parser is nowhere to be
seen, while it took me 1 minute 10 lines to come up with a working shape.
And it alone shows my solution doesn't need your garbage to work. Your
garbage only works for your garbage formulas and for which I don't mind to
leverage.

.
requires

【在 b*******s 的大作中提到】
: who cares about your f**king pluggable ass. it is an overkill in this case.
: and it makes no good to solve the problem. your shit solution still requires
: mine to work.
: and if it is required, won't take 1 minute to do it.
: 一块钱夹在镜框里当宝
:
: is

avatar
b*s
89
do it for 10k shapes

【在 g*****g 的大作中提到】
: You know what's overkill? Bullshit for 2 days and parser is nowhere to be
: seen, while it took me 1 minute 10 lines to come up with a working shape.
: And it alone shows my solution doesn't need your garbage to work. Your
: garbage only works for your garbage formulas and for which I don't mind to
: leverage.
:
: .
: requires

avatar
g*g
90
As I said, factory pattern doesn't prohibit builder. OOP is designed for
code reuse. Swing uses Factory pattern and there are far more than 10K
classes implementing java.awt.Component because they have different behavior
. Just citing one example.
Your dumb code can only handle your dumb use cases. As I mentioned before,
with different shapes you have to change your parser. You can talk shit but
you can't change fact.

【在 b*******s 的大作中提到】
: do it for 10k shapes
avatar
b*s
91
You are merely a talker. Sure I know you are waiting my code, not swing, to
solve your
problem.

behavior
but

【在 g*****g 的大作中提到】
: As I said, factory pattern doesn't prohibit builder. OOP is designed for
: code reuse. Swing uses Factory pattern and there are far more than 10K
: classes implementing java.awt.Component because they have different behavior
: . Just citing one example.
: Your dumb code can only handle your dumb use cases. As I mentioned before,
: with different shapes you have to change your parser. You can talk shit but
: you can't change fact.

avatar
g*g
92
No, I am waiting for your code to solve your dumb test cases, as unrealistic
as they are. And I can plug it as is. On the contrary, your code can't
solve my test cases without overhaul, even for simple shapes. Talk about
difference.
My code already solves a circle in one minute. How about yours? LOL about
the talker part.

【在 b*******s 的大作中提到】
: You are merely a talker. Sure I know you are waiting my code, not swing, to
: solve your
: problem.
:
: behavior
: but

avatar
b*s
93
U are really a pluggable ass

unrealistic

【在 g*****g 的大作中提到】
: No, I am waiting for your code to solve your dumb test cases, as unrealistic
: as they are. And I can plug it as is. On the contrary, your code can't
: solve my test cases without overhaul, even for simple shapes. Talk about
: difference.
: My code already solves a circle in one minute. How about yours? LOL about
: the talker part.

avatar
g*g
94
So sorry you can't cover your own ass. LOL.

【在 b*******s 的大作中提到】
: U are really a pluggable ass
:
: unrealistic

avatar
z*e
95
谁告诉你的?
hashmap的key&value随便一个类对象都可以
而且经常用对象来做key,而不是字符串

【在 G***G 的大作中提到】
: hashmap 的成员不都是字符串吗? 怎么能是类和方法呢?
avatar
G*G
96
一些类:三角形,长方形,圆,
每个类有它自己的参数,和方法(计算面积)
现在读取一个文本,
每一行是类名和参数
类名;参数
比如:圆;半径5
这样的行数总共为10行。
请问如何动态的定义初始化类呢?
比如第一行
Circle ciircle_line1 = new Circle(5)
avatar
p*2
97
pass a hm

【在 G***G 的大作中提到】
: 一些类:三角形,长方形,圆,
: 每个类有它自己的参数,和方法(计算面积)
: 现在读取一个文本,
: 每一行是类名和参数
: 类名;参数
: 比如:圆;半径5
: 这样的行数总共为10行。
: 请问如何动态的定义初始化类呢?
: 比如第一行
: Circle ciircle_line1 = new Circle(5)

avatar
G*G
98
请问什么叫hm?
能给个link,学习学习吗?

【在 p*****2 的大作中提到】
: pass a hm
avatar
p*2
99
hashmap

【在 G***G 的大作中提到】
: 请问什么叫hm?
: 能给个link,学习学习吗?

avatar
G*G
100
hashmap 的成员不都是字符串吗? 怎么能是类和方法呢?

【在 p*****2 的大作中提到】
: hashmap
avatar
p*2
101
java的局限
看看js

【在 G***G 的大作中提到】
: hashmap 的成员不都是字符串吗? 怎么能是类和方法呢?
avatar
a*e
102
python

【在 G***G 的大作中提到】
: 一些类:三角形,长方形,圆,
: 每个类有它自己的参数,和方法(计算面积)
: 现在读取一个文本,
: 每一行是类名和参数
: 类名;参数
: 比如:圆;半径5
: 这样的行数总共为10行。
: 请问如何动态的定义初始化类呢?
: 比如第一行
: Circle ciircle_line1 = new Circle(5)

avatar
g*g
103
你们成天鄙视Java,没有一个过关的呀。
interface Shape {
int area(int... params);
}
class Circle implements Shape {
@Override
public int area(int...params) {
return 0;
}

}
public int getArea(String clazz, int... params) throws Exception {
Shape shape = (Shape)Class.forName(clazz).newInstance();
return shape.area(params);
}
avatar
G*G
105
多谢!
仿佛看到曙光

【在 d****n 的大作中提到】
: interface 是正解。
: 你要是非要动态编译的话,看看eval and reflection.
: http://stackoverflow.com/questions/3862226/dynamically-create-a
: 我保证你最后饶来饶去发现这些类还是用共性,也就是interface.
: interface shape {
: dictionary attributes;
: dictionary methods;
: }

avatar
G*G
106
多谢!

【在 g*****g 的大作中提到】
: 你们成天鄙视Java,没有一个过关的呀。
: interface Shape {
: int area(int... params);
: }
: class Circle implements Shape {
: @Override
: public int area(int...params) {
: return 0;
: }
:

avatar
d*n
107
再说点哈。
难得不是动态编译,而是怎么用,怎么去调用共性,特性。想来想去就不用动态编译了
,呵呵。

【在 G***G 的大作中提到】
: 多谢!
avatar
l*t
108
case class +trait,再sealed,停不下来
avatar
p*2
109
你这个跟我理解的问题不一样

【在 g*****g 的大作中提到】
: 你们成天鄙视Java,没有一个过关的呀。
: interface Shape {
: int area(int... params);
: }
: class Circle implements Shape {
: @Override
: public int area(int...params) {
: return 0;
: }
:

avatar
Y*G
110
直接写入Spring容器,放在xml文件中让Spring去装配。

【在 G***G 的大作中提到】
: 一些类:三角形,长方形,圆,
: 每个类有它自己的参数,和方法(计算面积)
: 现在读取一个文本,
: 每一行是类名和参数
: 类名;参数
: 比如:圆;半径5
: 这样的行数总共为10行。
: 请问如何动态的定义初始化类呢?
: 比如第一行
: Circle ciircle_line1 = new Circle(5)

avatar
y*u
111
Java reflection
Class.forName("Circle").getMethod("area", double.class).invoke(Shape.class,
5);

【在 G***G 的大作中提到】
: 一些类:三角形,长方形,圆,
: 每个类有它自己的参数,和方法(计算面积)
: 现在读取一个文本,
: 每一行是类名和参数
: 类名;参数
: 比如:圆;半径5
: 这样的行数总共为10行。
: 请问如何动态的定义初始化类呢?
: 比如第一行
: Circle ciircle_line1 = new Circle(5)

avatar
b*s
112
不就是读配置文件来初始化对象么,那么简单的东西
avatar
b*s
113
用traits足以做事先都没有定义过的类,也就是根据文件可以在编译期形成代码,比
java那套强多了。比如上面某位提供的都要是已经有代码实现的类,比如接口是多边形
,他得事先写好五边形六边形三角什么的,弱爆了
avatar
N*K
114
这东西我还没用过 有啥入门读物?

【在 b*******s 的大作中提到】
: 用traits足以做事先都没有定义过的类,也就是根据文件可以在编译期形成代码,比
: java那套强多了。比如上面某位提供的都要是已经有代码实现的类,比如接口是多边形
: ,他得事先写好五边形六边形三角什么的,弱爆了

avatar
g*g
115
用点脑子行不?不同形状计算面积的方法难道是一样的?但凡不一样难道你不用定义不
同的计算方法?但凡方法实现不一样难道封装到类使用同样接口不是最干净的设计。本
班水平实在太低了,trait根本不是你这么用的。真要用Java 8也有相似的default
method.

【在 b*******s 的大作中提到】
: 用traits足以做事先都没有定义过的类,也就是根据文件可以在编译期形成代码,比
: java那套强多了。比如上面某位提供的都要是已经有代码实现的类,比如接口是多边形
: ,他得事先写好五边形六边形三角什么的,弱爆了

avatar
N*n
116

switch (name) {
case "class1": new class1 ....
case "class2": new class2 ...
}

【在 G***G 的大作中提到】
: 一些类:三角形,长方形,圆,
: 每个类有它自己的参数,和方法(计算面积)
: 现在读取一个文本,
: 每一行是类名和参数
: 类名;参数
: 比如:圆;半径5
: 这样的行数总共为10行。
: 请问如何动态的定义初始化类呢?
: 比如第一行
: Circle ciircle_line1 = new Circle(5)

avatar
g*g
117
你这要有100个类,代码不是一般的丑陋。回头加个类还得跟着改这个文件。对设计模
式完全没有sense.

【在 N********n 的大作中提到】
:
: switch (name) {
: case "class1": new class1 ....
: case "class2": new class2 ...
: }

avatar
b*s
118
Tell me sth about cpp traits

【在 g*****g 的大作中提到】
: 用点脑子行不?不同形状计算面积的方法难道是一样的?但凡不一样难道你不用定义不
: 同的计算方法?但凡方法实现不一样难道封装到类使用同样接口不是最干净的设计。本
: 班水平实在太低了,trait根本不是你这么用的。真要用Java 8也有相似的default
: method.

avatar
g*g
119
你就省省吧,不服就把代码写出来让大家笑话一下。

【在 b*******s 的大作中提到】
: Tell me sth about cpp traits
avatar
b*s
120
你还真是黄皮阿三

【在 g*****g 的大作中提到】
: 你就省省吧,不服就把代码写出来让大家笑话一下。
avatar
g*g
121
你说这话有用吗?是骡子是马拉出来溜溜。我老代码放在那里,你丫不服写个更好的大
家看看就是。明明基本功不行,非要装逼乱发评论。这可不是12306还能胡扯,就几行
代码的事情你都光说不练。

【在 b*******s 的大作中提到】
: 你还真是黄皮阿三
avatar
N*n
122

SWITCH CASE就是给少量几个类用的, 真多了再说。

【在 g*****g 的大作中提到】
: 你这要有100个类,代码不是一般的丑陋。回头加个类还得跟着改这个文件。对设计模
: 式完全没有sense.

avatar
g*g
123
多少还在其次,增加一种形状不改这个类的实现是设计模式的基本要求。

【在 N********n 的大作中提到】
:
: SWITCH CASE就是给少量几个类用的, 真多了再说。

avatar
d*i
124
你还别说,看来看去还就是好虫提供的解法最干净整洁,OO加上反射,正好简单明了的
解决了楼主的问题。不要什么东西都想着“叛逆,反传统"这种左逼嘻皮士字眼,编程
不相信眼泪,相信能真正的work。

【在 b*******s 的大作中提到】
: 用traits足以做事先都没有定义过的类,也就是根据文件可以在编译期形成代码,比
: java那套强多了。比如上面某位提供的都要是已经有代码实现的类,比如接口是多边形
: ,他得事先写好五边形六边形三角什么的,弱爆了

avatar
N*n
126

想罩住未来增加类先把int类型换成obj,否则一个类特殊整个子类都要改。

【在 g*****g 的大作中提到】
: 多少还在其次,增加一种形状不改这个类的实现是设计模式的基本要求。
avatar
g*g
127
那就是个伪码,为了说明问题。

【在 N********n 的大作中提到】
:
: 想罩住未来增加类先把int类型换成obj,否则一个类特殊整个子类都要改。

avatar
b*s
128
几行示意代码,看得懂看不懂你们自己的事
const std::string shapes[] = {"circle:3.14:10:_2^2*_1","rectangle:4:3:_1*_2"
};
class Euclidean final
{
...
};
class Descartes final
{
...
};
// the interface
const int protocol_version = 101; // 1.01
std::conditional::type calc;
calc.calc_area(shapes,results);
avatar
g*g
129
设计模式强调的就是如何降低耦合,增加一个形状不修改原来代码就是个基本要求。尼
玛基础这么差能把C++写成这样还出来现真是奇葩。我就不说数据和方法分离这种最最
基本的要求了。第三方输入个数据居然连方法都得给。
avatar
b*s
130
no surprise you cant understand. OO is the only paradigm you know
my solution could accept new shapes without changing any code. could yours?
if there are 10k new shapes, you have to write 10k new get_area()
but mime don't have to.

【在 g*****g 的大作中提到】
: 设计模式强调的就是如何降低耦合,增加一个形状不修改原来代码就是个基本要求。尼
: 玛基础这么差能把C++写成这样还出来现真是奇葩。我就不说数据和方法分离这种最最
: 基本的要求了。第三方输入个数据居然连方法都得给。

avatar
g*g
131
尼玛居然可以这么弱智。假定我们现在有个正五边形。我狗一次把它实现了,黑大妈知
道边长都可以调用得到面积。
你的用户每次用都要狗一次,能把表达式写对就不是一般人。下次用还得再狗。就这你
垃圾代码还拿出来丢人呢?你那破实现需要什么Euclidean之类的装逼吗?直接parse
数据就行了。

【在 b*******s 的大作中提到】
: no surprise you cant understand. OO is the only paradigm you know
: my solution could accept new shapes without changing any code. could yours?
: if there are 10k new shapes, you have to write 10k new get_area()
: but mime don't have to.

avatar
b*s
132
就这智力还敢说。这只是个示意代码,真正的数学公式实际上是单独放一个配置文件的
,需要每个描述后面都放一个?
这个实现最适合用户了,要什么新的形状,输一次公式就行,基本用户只要修改几个文
本文件,完全解耦。不要麻烦程序猿改代码,就你这黑大妈水平看不懂

【在 g*****g 的大作中提到】
: 尼玛居然可以这么弱智。假定我们现在有个正五边形。我狗一次把它实现了,黑大妈知
: 道边长都可以调用得到面积。
: 你的用户每次用都要狗一次,能把表达式写对就不是一般人。下次用还得再狗。就这你
: 垃圾代码还拿出来丢人呢?你那破实现需要什么Euclidean之类的装逼吗?直接parse
: 数据就行了。

avatar
b*s
133
欧拉笛卡尔那个就是演示了我不用就不创建,根据配置生成了需要的对象,只会oo的还
不是不管用不用都创建一堆废物代码
avatar
b*s
134
本来不想解释,考虑到本版确实智商一般,其实还有几种方法实现,讲了也不懂的,就
知道死写几千个大同小异的傻实现
avatar
g*g
135
你丫是不是傻逼呀?把数据和公式放在一个字符串里现在跟我说只是示意代码?
你那破东西需要整什么神神叨叨的traits? 还弄俩完全没有的类。最简单的C parse个
配置文件不一样做了。
用C++把数据类型全丢了,还他妈得意了。

【在 b*******s 的大作中提到】
: 就这智力还敢说。这只是个示意代码,真正的数学公式实际上是单独放一个配置文件的
: ,需要每个描述后面都放一个?
: 这个实现最适合用户了,要什么新的形状,输一次公式就行,基本用户只要修改几个文
: 本文件,完全解耦。不要麻烦程序猿改代码,就你这黑大妈水平看不懂

avatar
b*s
136
老魏说得一点不错,井底之蛙加胡搅蛮缠,你自己撸吧,早点拿绿卡

【在 g*****g 的大作中提到】
: 你丫是不是傻逼呀?把数据和公式放在一个字符串里现在跟我说只是示意代码?
: 你那破东西需要整什么神神叨叨的traits? 还弄俩完全没有的类。最简单的C parse个
: 配置文件不一样做了。
: 用C++把数据类型全丢了,还他妈得意了。

avatar
b*s
137
好汉难日打滚的b
avatar
g*g
138
你现在承认那俩是装逼对象了?是个语言parse个配置文件都能把这做了,需要traits
干啥?
我老再跟你讲讲为什么你是傻逼吧。就说这个parse配置文件,假定刚开始你支持加减
乘除。后来形状复杂了,什么sin/cos都来了,怎么办?改parser。接下来更复杂了,
什么一阶二阶导数都来了,怎么办,继续改parser。要保证没regression可难了。相比
之下我就加个形状实现,如果我的实现错了,也就是这个新的形状面积算错而已,其他
形状相关的代码完全没动,是不会产生regression的。你啥不用改代码只不过一厢情愿
而已。
你小在软件工程上的道行跟我差了很多光年,还是不要出来丢脸了。

【在 b*******s 的大作中提到】
: 欧拉笛卡尔那个就是演示了我不用就不创建,根据配置生成了需要的对象,只会oo的还
: 不是不管用不用都创建一堆废物代码

avatar
b*s
139
traits是干什么的?你没做过就少乱说,parser不用traits?
加一个parser功能,所有shapes都用,比你重复写哪个更合理
就一嘴硬的傻b

traits

【在 g*****g 的大作中提到】
: 你现在承认那俩是装逼对象了?是个语言parse个配置文件都能把这做了,需要traits
: 干啥?
: 我老再跟你讲讲为什么你是傻逼吧。就说这个parse配置文件,假定刚开始你支持加减
: 乘除。后来形状复杂了,什么sin/cos都来了,怎么办?改parser。接下来更复杂了,
: 什么一阶二阶导数都来了,怎么办,继续改parser。要保证没regression可难了。相比
: 之下我就加个形状实现,如果我的实现错了,也就是这个新的形状面积算错而已,其他
: 形状相关的代码完全没动,是不会产生regression的。你啥不用改代码只不过一厢情愿
: 而已。
: 你小在软件工程上的道行跟我差了很多光年,还是不要出来丢脸了。

avatar
g*g
140
你丫被实例完全击垮,已经开始语无伦次了。你丫这破东西需要啥traits,就是几个参
数替代而已。改parser和增加shape的区别,更是你完全不能理解的。你要觉得加配置
文件改parser比加一个Shape好,我们就不需要继续讨论了。
你反正跟太监是一个路数。

【在 b*******s 的大作中提到】
: traits是干什么的?你没做过就少乱说,parser不用traits?
: 加一个parser功能,所有shapes都用,比你重复写哪个更合理
: 就一嘴硬的傻b
:
: traits

avatar
b*s
141
你又宣布胜利了,还能玩点新鲜的吗
配置来解耦是linux/unit很自然的想法,不会写代码的也能改变软件特性。比如题主打
开文本,加了十几个字母,哇,支持了一种新类型了,也就你这种不理解其中的便利,
非要每次写一堆大部分重复的新代码,然后几百上千个类看了前面忘记后面。

【在 g*****g 的大作中提到】
: 你丫被实例完全击垮,已经开始语无伦次了。你丫这破东西需要啥traits,就是几个参
: 数替代而已。改parser和增加shape的区别,更是你完全不能理解的。你要觉得加配置
: 文件改parser比加一个Shape好,我们就不需要继续讨论了。
: 你反正跟太监是一个路数。

avatar
g*g
142
我需要宣布胜利吗?比如写C++,我只会按C++规范写个新类计算面积,你就非要把C++
compiler改了,加上配置文件生生把新形状面积算了。你丫实在太牛逼了。

【在 b*******s 的大作中提到】
: 你又宣布胜利了,还能玩点新鲜的吗
: 配置来解耦是linux/unit很自然的想法,不会写代码的也能改变软件特性。比如题主打
: 开文本,加了十几个字母,哇,支持了一种新类型了,也就你这种不理解其中的便利,
: 非要每次写一堆大部分重复的新代码,然后几百上千个类看了前面忘记后面。

avatar
b*s
143
你的c++认识,十几年前的东西了吧,少乱放屁了

+

【在 g*****g 的大作中提到】
: 我需要宣布胜利吗?比如写C++,我只会按C++规范写个新类计算面积,你就非要把C++
: compiler改了,加上配置文件生生把新形状面积算了。你丫实在太牛逼了。

avatar
b*s
144
肯定没做过复杂的parser 居然说用不到traits 还敢放屁, 都当人是你这样靠google
来找方案的二把刀啊
avatar
g*g
145
实现个不同形状面积的算法哪里重复了?你丫能再弱智一些吗?什么东西不是多一层
indirection一样都能做,但没有好处地放弃compiler的类型检查,毫无意义地去写个
多余parser,本来就是个弱智的做法。我可能写几百上千个类写了后面忘了前面,那是
因为后面跟前面完全无关,我可不像你parser一会不够用了又得改一次。

【在 b*******s 的大作中提到】
: 你又宣布胜利了,还能玩点新鲜的吗
: 配置来解耦是linux/unit很自然的想法,不会写代码的也能改变软件特性。比如题主打
: 开文本,加了十几个字母,哇,支持了一种新类型了,也就你这种不理解其中的便利,
: 非要每次写一堆大部分重复的新代码,然后几百上千个类看了前面忘记后面。

avatar
g*g
146
我没做过复杂的parser是没错,我只知道C++加新类的事情常有,改compiler的事情很
少,像你这样为了避免加新类改parser的傻逼是生平仅见。

google

【在 b*******s 的大作中提到】
: 肯定没做过复杂的parser 居然说用不到traits 还敢放屁, 都当人是你这样靠google
: 来找方案的二把刀啊

avatar
b*s
147
改你妈的compiler,少放屁好不好

【在 g*****g 的大作中提到】
: 我没做过复杂的parser是没错,我只知道C++加新类的事情常有,改compiler的事情很
: 少,像你这样为了避免加新类改parser的傻逼是生平仅见。
:
: google

avatar
b*s
148
你果然根本不能理解

【在 g*****g 的大作中提到】
: 实现个不同形状面积的算法哪里重复了?你丫能再弱智一些吗?什么东西不是多一层
: indirection一样都能做,但没有好处地放弃compiler的类型检查,毫无意义地去写个
: 多余parser,本来就是个弱智的做法。我可能写几百上千个类写了后面忘了前面,那是
: 因为后面跟前面完全无关,我可不像你parser一会不够用了又得改一次。

avatar
g*g
149
该说的我都说了,你丫一个外行弱智,非打肿脸充胖子。任何一个语言都能实现的
parser非扯什么traits,真她妈够装逼的。
号称写几行代码我们能不能理解看着办,最后居然就剩几行数据和逻辑混合的字符串。
其他都是他妈没用的代码。

【在 b*******s 的大作中提到】
: 你果然根本不能理解
avatar
b*s
150
傻b没做过的还那么自信

【在 g*****g 的大作中提到】
: 该说的我都说了,你丫一个外行弱智,非打肿脸充胖子。任何一个语言都能实现的
: parser非扯什么traits,真她妈够装逼的。
: 号称写几行代码我们能不能理解看着办,最后居然就剩几行数据和逻辑混合的字符串。
: 其他都是他妈没用的代码。

avatar
b*s
151
所以说是黄皮阿三,一点不错
avatar
g*g
152
C有traits吗?C能实现你这个功能吗?你丫弱智还非要死挺到底是吧?

【在 b*******s 的大作中提到】
: 傻b没做过的还那么自信
avatar
b*s
153
傻b才明明有刀叉筷子还要用手,黄皮阿三不懂的

【在 g*****g 的大作中提到】
: C有traits吗?C能实现你这个功能吗?你丫弱智还非要死挺到底是吧?
avatar
g*g
154
傻逼你不是牛逼哄哄的用traits才能实现吗?现在连最后的遮羞布都不要了?弄半天你
就写俩公式加上数据的字符串就算实现了,什么parser可是没影呀,跟太监的计数器的
确有异曲同工之妙。你丫跟太监一样,装逼水平很高,一打脸实力是低到没有底线的。

【在 b*******s 的大作中提到】
: 傻b才明明有刀叉筷子还要用手,黄皮阿三不懂的
avatar
b*s
155
你他妈除了 我很牛 你不行 这两招还有点新花样吗。看你那个屎一样的设计

【在 g*****g 的大作中提到】
: 傻逼你不是牛逼哄哄的用traits才能实现吗?现在连最后的遮羞布都不要了?弄半天你
: 就写俩公式加上数据的字符串就算实现了,什么parser可是没影呀,跟太监的计数器的
: 确有异曲同工之妙。你丫跟太监一样,装逼水平很高,一打脸实力是低到没有底线的。

avatar
b*s
156
你他妈的就是类似围棋庸手,只会定式,一变妈的就死命往定式上拽。蠢材
avatar
g*g
157
我老只不过用reflection实现了一个最普通的Factory Pattern, 你丫给GOF连提鞋都不
配。

【在 b*******s 的大作中提到】
: 你他妈除了 我很牛 你不行 这两招还有点新花样吗。看你那个屎一样的设计
avatar
g*g
158
你丫丢人了就死撑有蛋用?围棋一样秒杀你。

【在 b*******s 的大作中提到】
: 你他妈的就是类似围棋庸手,只会定式,一变妈的就死命往定式上拽。蠢材
avatar
y*u
159
你们两位大牛都省点心吧
有空多指点一下我们这些菜鸟比较好,每个人都有自己的观点,也没必要吵架吧

天你
样,

【在 b*******s 的大作中提到】
: 你他妈除了 我很牛 你不行 这两招还有点新花样吗。看你那个屎一样的设计
avatar
p*o
160
这都是GoF里面最基本的东西,先上factory,类太多了用prototype,需要组合
复杂图形用composite,最后parser太复杂写不清楚来个builder。

【在 y**********u 的大作中提到】
: 你们两位大牛都省点心吧
: 有空多指点一下我们这些菜鸟比较好,每个人都有自己的观点,也没必要吵架吧
:
: 天你
: 样,

avatar
g*g
161
是很基本,可是外行完全不懂,连狗屎设计都骂上了。本版流行不懂的都是狗屎。

【在 p***o 的大作中提到】
: 这都是GoF里面最基本的东西,先上factory,类太多了用prototype,需要组合
: 复杂图形用composite,最后parser太复杂写不清楚来个builder。

avatar
b*s
162
这样吧,我们各写一段程序,支持一万种shapes,比不比?

【在 g*****g 的大作中提到】
: 是很基本,可是外行完全不懂,连狗屎设计都骂上了。本版流行不懂的都是狗屎。
avatar
g*g
163
当然可以,你丫以为配置文件不是程序的一部分?太弱智了吧。

【在 b*******s 的大作中提到】
: 这样吧,我们各写一段程序,支持一万种shapes,比不比?
avatar
b*s
164
sure, you use your solution. I use mine.
Namely, derived classes vs parser?

【在 g*****g 的大作中提到】
: 当然可以,你丫以为配置文件不是程序的一部分?太弱智了吧。
avatar
g*g
165
We talk about complete solution, I couldn't care less what you want to use.
The truth, I had a working solution in this thread, you have a few strings
and parser is nowhere to be seen. You are such a joke it's not even funny.

【在 b*******s 的大作中提到】
: sure, you use your solution. I use mine.
: Namely, derived classes vs parser?

avatar
b*s
166
the only solution you provided is a class factory.
do u mean you will use it for 10k shapes?

【在 g*****g 的大作中提到】
: We talk about complete solution, I couldn't care less what you want to use.
: The truth, I had a working solution in this thread, you have a few strings
: and parser is nowhere to be seen. You are such a joke it's not even funny.

avatar
b*s
167
okay, I will write a script to generate 10k formulas & agruments of em. and
let's use them as test cases. what do you think?

【在 g*****g 的大作中提到】
: We talk about complete solution, I couldn't care less what you want to use.
: The truth, I had a working solution in this thread, you have a few strings
: and parser is nowhere to be seen. You are such a joke it's not even funny.

avatar
b*s
168
agree. but some people only knows factory

【在 p***o 的大作中提到】
: 这都是GoF里面最基本的东西,先上factory,类太多了用prototype,需要组合
: 复杂图形用composite,最后parser太复杂写不清楚来个builder。

avatar
g*g
169
Sure, you are too native to think my architecture cannot incorporate a
parser for your white noise garbage formula, the builder pattern is there
for it. The truth is, most system may need a dozen shapes, and I don't need
to change my existing codes when adding a new one. And yours is exactly an
anti-pattern.
A parser can be used when it makes sense, not as a catch-all solution.

and

【在 b*******s 的大作中提到】
: okay, I will write a script to generate 10k formulas & agruments of em. and
: let's use them as test cases. what do you think?

avatar
b*s
170
you are replacing your 'solution'

need

【在 g*****g 的大作中提到】
: Sure, you are too native to think my architecture cannot incorporate a
: parser for your white noise garbage formula, the builder pattern is there
: for it. The truth is, most system may need a dozen shapes, and I don't need
: to change my existing codes when adding a new one. And yours is exactly an
: anti-pattern.
: A parser can be used when it makes sense, not as a catch-all solution.
:
: and

avatar
g*g
171
LOL, that's a 180 degree change, yesterday you said factory pattern is shit.

【在 b*******s 的大作中提到】
: agree. but some people only knows factory
avatar
g*g
172
No, it's not replacing solution. It's showing how a well-designed
architecture is
flexible. Incorporate a builder pattern for a factory when necessary is
just classic design pattern and again you have no knowledge of it. Don't
forget you didn't use factory pattern to begin with.

【在 b*******s 的大作中提到】
: you are replacing your 'solution'
:
: need

avatar
b*s
173
did I?

shit.

【在 g*****g 的大作中提到】
: LOL, that's a 180 degree change, yesterday you said factory pattern is shit.
avatar
g*g
174
I used a classic factory pattern and you call it shit. LOL. Thanks for
Google now you know what it is.

【在 b*******s 的大作中提到】
: did I?
:
: shit.

avatar
b*s
175
you are really a bold man.
I told ya your solution can't handle huge amt of new shapes in a simple way.
What a misleading you are making, buggy man

【在 g*****g 的大作中提到】
: I used a classic factory pattern and you call it shit. LOL. Thanks for
: Google now you know what it is.

avatar
g*g
176
LOL, you are so full of shit. My solution can easily call your parser to
solve the shapes you can handle, and handle shapes your parser can't handle
without single line of wasted code. If you believe your parse can solve all,
let's find out.

way.

【在 b*******s 的大作中提到】
: you are really a bold man.
: I told ya your solution can't handle huge amt of new shapes in a simple way.
: What a misleading you are making, buggy man

avatar
b*s
177
yep, so you will wait for my solution to make yours work. good point

handle
all,

【在 g*****g 的大作中提到】
: LOL, you are so full of shit. My solution can easily call your parser to
: solve the shapes you can handle, and handle shapes your parser can't handle
: without single line of wasted code. If you believe your parse can solve all,
: let's find out.
:
: way.

avatar
g*g
178
It shows my architecture is pluggable, can't say the same for yours. This is
what design pattern is all about.

【在 b*******s 的大作中提到】
: yep, so you will wait for my solution to make yours work. good point
:
: handle
: all,

avatar
b*s
179
who cares about your f**king pluggable ass. it is an overkill in this case.
and it makes no good to solve the problem. your shit solution still requires
mine to work.
and if it is required, won't take 1 minute to do it.
一块钱夹在镜框里当宝

is

【在 g*****g 的大作中提到】
: It shows my architecture is pluggable, can't say the same for yours. This is
: what design pattern is all about.

avatar
g*g
180
You know what's overkill? Bullshit for 2 days and parser is nowhere to be
seen, while it took me 1 minute 10 lines to come up with a working shape.
And it alone shows my solution doesn't need your garbage to work. Your
garbage only works for your garbage formulas and for which I don't mind to
leverage.

.
requires

【在 b*******s 的大作中提到】
: who cares about your f**king pluggable ass. it is an overkill in this case.
: and it makes no good to solve the problem. your shit solution still requires
: mine to work.
: and if it is required, won't take 1 minute to do it.
: 一块钱夹在镜框里当宝
:
: is

avatar
b*s
181
do it for 10k shapes

【在 g*****g 的大作中提到】
: You know what's overkill? Bullshit for 2 days and parser is nowhere to be
: seen, while it took me 1 minute 10 lines to come up with a working shape.
: And it alone shows my solution doesn't need your garbage to work. Your
: garbage only works for your garbage formulas and for which I don't mind to
: leverage.
:
: .
: requires

avatar
g*g
182
As I said, factory pattern doesn't prohibit builder. OOP is designed for
code reuse. Swing uses Factory pattern and there are far more than 10K
classes implementing java.awt.Component because they have different behavior
. Just citing one example.
Your dumb code can only handle your dumb use cases. As I mentioned before,
with different shapes you have to change your parser. You can talk shit but
you can't change fact.

【在 b*******s 的大作中提到】
: do it for 10k shapes
avatar
b*s
183
You are merely a talker. Sure I know you are waiting my code, not swing, to
solve your
problem.

behavior
but

【在 g*****g 的大作中提到】
: As I said, factory pattern doesn't prohibit builder. OOP is designed for
: code reuse. Swing uses Factory pattern and there are far more than 10K
: classes implementing java.awt.Component because they have different behavior
: . Just citing one example.
: Your dumb code can only handle your dumb use cases. As I mentioned before,
: with different shapes you have to change your parser. You can talk shit but
: you can't change fact.

avatar
g*g
184
No, I am waiting for your code to solve your dumb test cases, as unrealistic
as they are. And I can plug it as is. On the contrary, your code can't
solve my test cases without overhaul, even for simple shapes. Talk about
difference.
My code already solves a circle in one minute. How about yours? LOL about
the talker part.

【在 b*******s 的大作中提到】
: You are merely a talker. Sure I know you are waiting my code, not swing, to
: solve your
: problem.
:
: behavior
: but

avatar
b*s
185
U are really a pluggable ass

unrealistic

【在 g*****g 的大作中提到】
: No, I am waiting for your code to solve your dumb test cases, as unrealistic
: as they are. And I can plug it as is. On the contrary, your code can't
: solve my test cases without overhaul, even for simple shapes. Talk about
: difference.
: My code already solves a circle in one minute. How about yours? LOL about
: the talker part.

avatar
g*g
186
So sorry you can't cover your own ass. LOL.

【在 b*******s 的大作中提到】
: U are really a pluggable ass
:
: unrealistic

avatar
z*e
187
谁告诉你的?
hashmap的key&value随便一个类对象都可以
而且经常用对象来做key,而不是字符串

【在 G***G 的大作中提到】
: hashmap 的成员不都是字符串吗? 怎么能是类和方法呢?
avatar
l*b
188
肿么吵起来了。。。
Java用reflection就好了, c++需要绕点弯弯。自己飕一下c++ reflection 就可以看到
标准答案了。
新加一个类不碰已有的代码, 不需要重新编译。

【在 G***G 的大作中提到】
: 一些类:三角形,长方形,圆,
: 每个类有它自己的参数,和方法(计算面积)
: 现在读取一个文本,
: 每一行是类名和参数
: 类名;参数
: 比如:圆;半径5
: 这样的行数总共为10行。
: 请问如何动态的定义初始化类呢?
: 比如第一行
: Circle ciircle_line1 = new Circle(5)

avatar
A*e
189
噗哧。

【在 p*****2 的大作中提到】
: pass a hm
avatar
c*e
190
groovy 做这个正好。虽然这个例子用你的方法就可以。

【在 g*****g 的大作中提到】
: 你们成天鄙视Java,没有一个过关的呀。
: interface Shape {
: int area(int... params);
: }
: class Circle implements Shape {
: @Override
: public int area(int...params) {
: return 0;
: }
:

avatar
a*a
191
in C++, there are a couple ways to do this. that is to create classes whose
types are specified at run time by "exogenous" inputs so to speak.
the quick and dirty way is a macro.
the most sophisticated is flex or boost::spirit parser.
in the middle is something that uses a mpl::vector that holds all the
classes u want such behavior. loop through it and compare the read type name
to the demangled class names. it is not entirely trivial because about the
only run time loop on mpl::vector is a for_each which does not support
breaking out so you have to work around that.

【在 G***G 的大作中提到】
: 一些类:三角形,长方形,圆,
: 每个类有它自己的参数,和方法(计算面积)
: 现在读取一个文本,
: 每一行是类名和参数
: 类名;参数
: 比如:圆;半径5
: 这样的行数总共为10行。
: 请问如何动态的定义初始化类呢?
: 比如第一行
: Circle ciircle_line1 = new Circle(5)

avatar
m*u
192
实在看不下去了。。。。。
真NM能装,
avatar
a*a
193
FWIW, tested today at work that this works on a recent gcc. pretty poor
style, mem management and safety are disregarded, just a demo. but the core
of it is only about 20 lines of code.
you still have to add new shapes to that vector, but I assume if you have a
system that everything derives from a grandpa Object class, then it is
easier to do such a thing as language support. OTOH, at no point does one
have to spell out any class names except at the use site.
there is no way to call a member by its name in C++ though.
struct Shape { virtual string id() { return "shape"; } };
struct Circle : public Shape { string id() { return "circle"; }};
struct Triangle : public Shape { string id() { return "triangle"; }};
typedef mpl::vector shapes;
string demangle(char* name) {
int status;
char* dmgled = abi::__cxa_demangle(name,0,0,&status);
if(res) return res;
return name;
}
struct shape_select {
Shape*& shape;
string name;
shape_select(Shape*& s, string n) : shape(s),name(n) {}
template
void operator()(T&) {
if(name == demangle(typeid(T).name()))
shape = new T;
}
};
Shape* create_shape_by_name(string name) {
Shape* shape = 0;
shape_select worker(shape, name);
mpl::for_each(worker);
return shape;
}
int main() {
cout<id()<cout<id()<}
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。