ラーメンの製作過程をOOPするスレ
■ このスレッドは過去ログ倉庫に格納されています
0001ラーメンマン
NGNG( ´谷`)ヨロシク
0002デフォルトの名無しさん
NGNG0003デフォルトの名無しさん
NGNG0004デフォルトの名無しさん
NGNG見事、完成しましたね。
0005デフォルトの名無しさん
NGNG…
誰だよ。
0006デフォルトの名無しさん
NGNG0007デフォルトの名無しさん
NGNG0008デフォルトの名無しさん
NGNGprotected:
CFactroy<CYasai> hatake_;
CFactory<CNiku> noujyou_;
};
わかんねぇ…
0009デフォルトの名無しさん
NGNGclass RamenNoodle : Noodle { }
0010デフォルトの名無しさん
NGNGラーメンの構成要素は何か
スープ、麺、トッピング、どんぶり
スープには何があるか
しょうゆ、みそ、しお、とんこつ
麺には何があるか
細麺、太麺
トッピングには何があるか
チャーシュー、シナチク、ナルト、コーン、もやし、焼き海苔、
どんぶりには何があるか
普通、大盛り
0011デフォルトの名無しさん
NGNGうっぅぅぅうううううううううううううううううううわっほぅぅ!!
0012デフォルトの名無しさん
NGNGまずなると
class @
{
}
0013デフォルトの名無しさん
NGNGclass |
0014デフォルトの名無しさん
NGNGclass ■
0015デフォルトの名無しさん
NGNGclass ◎
0016デフォルトの名無しさん
NGNGclass ∬
0017デフォルトの名無しさん
NGNGそれぞれの具に、茹でるインタフェースが実装されてません。
0018デフォルトの名無しさん
NGNG0019デフォルトの名無しさん
NGNG0020デフォルトの名無しさん
NGNG0021デフォルトの名無しさん
NGNG0022デフォルトの名無しさん
NGNGそのサービスの一つに下ごしらえがあると、、、。
interface トッピング
{
下ごしらえ()
}
0023デフォルトの名無しさん
NGNG0024デフォルトの名無しさん
NGNG0025デフォルトの名無しさん
NGNG0026デフォルトの名無しさん
NGNG0027デフォルトの名無しさん
NGNGラーメン本体は、麺、スープにわけて考えるべきだべ。
0028デフォルトの名無しさん
NGNG0029デフォルトの名無しさん
NGNG0030デフォルトの名無しさん
NGNG0031デフォルトの名無しさん
NGNG0032デフォルトの名無しさん
NGNG0033デフォルトの名無しさん
NGNG0034デフォルトの名無しさん
NGNG0035デフォルトの名無しさん
NGNGラーメンライスは、ラーメンとライスであって、ラーメンライスというものではないので、
SetCollectionにラーメンとライスを保持させて実現する。
0036デフォルトの名無しさん
NGNG0037デフォルトの名無しさん
NGNG0038デフォルトの名無しさん
NGNG0039デフォルトの名無しさん
NGNGstatic Noodle createNoodle(Material wheat);
}
0040デフォルトの名無しさん
NGNGそれともスープ?
0041デフォルトの名無しさん
NGNG出来合いでいいんじゃない?
0042デフォルトの名無しさん
NGNGラーメンの具にライスを投入する場合もあるだろう。
ラーメンの麺を食べた後にまだ食い足りなくて、そうめんを入れたり、マカロニを入れたり
ごはんを入れてラーメンおじやとかにするユースケースも想定しなくてはならない。
0043デフォルトの名無しさん
NGNG0044デフォルトの名無しさん
NGNG0045デフォルトの名無しさん
NGNG目指しているのは、非の打ち所無く一部の隙も無駄も無い
輝かんばかりのラーメン「の製作過程」でつか?
汚れだが凄まじいパワーと推進力で事を進めるラーメン職人はこの際用なし?
0046デフォルトの名無しさん
NGNG付け加えを容易にできるようにした方がいいな。
0047デフォルトの名無しさん
NGNGclass Ramen {
public String shousai;
public Ramen(String shousai) {
this.shousai = shousai;
}
}
使い方
Ramen miso = new Ramen("みそラーメン、具は海苔2枚とチャーシュー1枚");
Ramen shouyu = new Ramen("しょうゆラーメン、具はメンマ30g");
0048デフォルトの名無しさん
NGNG0049デフォルトの名無しさん
NGNGclass RamenMan extends Ramen {
public RamenMan(String shousai) {
super(shousai);
}
}
使い方
RamenMan sono1 = new RamenMan("我こそはラーメンマンだ。");
RamenMan sono2 = new RamenMan("私こそラーメンマンだ。");
0050デフォルトの名無しさん
NGNGclass Thing {
public String details;
public Thing(String details) {
this.details = details;
}
}
使い方
Thing thing = new Thing("世の中で起こる事象、存在する物体、なんでもいいから、何か");
0051デフォルトの名無しさん
NGNG0052デフォルトの名無しさん
NGNG0053デフォルトの名無しさん
NGNG0054デフォルトの名無しさん
NGNGRemoveMaskExceptionでもcatchしとけ。
0055デフォルトの名無しさん
NGNG{
};
0056デフォルトの名無しさん
NGNG0057デフォルトの名無しさん
NGNG左頭部にセキュリティホールが見つかりました。
0058デフォルトの名無しさん
NGNG0059デフォルトの名無しさん
NGNGIkkonoChumon
├KatasaType katasa;
└RamenType ramenType;
Chumon
└IkkonoChumon[ ] chumonList;
bokunoChumon : IkkonoChumon
bokunoChumon.katasa = KATAME
bokunoChumon.ramenType = RAMEN
mamanoChumon : IkkonoChumon
mamanoChumon.katasa = YAWARAKAME
mamanoChumon.ramenType = MISORAMEN
papanoChumon : IkkonoChumon
papanoChumon.katasa = HARIGANE
papanoChumon.ramenType = TONKOTURAMEN
bokutatinoChumon : Chumon
bokutatinoChumon.chumonList = [ bokunoChumon, mamanoChumon, papanoChumon];
oyaji.chumonWoUkeru(bokutatinoChumon);
0060デフォルトの名無しさん
NGNG{
public void make(String order)
{
System.out.println("へい、" + order + "お待ちどう!!");
}
}
0061デフォルトの名無しさん
NGNGOyaji.make() からは Ramen 型の返り値とか欲しくね?
Noodle{
Soup soup;
Men men;
Gu[ ] gu;
}
Ramen : Noodle{
RamenSoup soup;
RamenMen men;
RamenGu[ ] gu;
}
Soup{
Mizu mizu;
Dasi dasi;
Enbun enbun;
}
Soup SHOUYUSOUP, MISOSOUP, SIOSOUP, TONKOTUSOUP;
RamenSoup : oneof [ SHOUYUSOUP, MISOSOUP, SIOSOUP, TONKOTUSOUP ];
Men{
Real Futosa;
Real Nagasa;
Real TidireGuai;
MenKiji kiji;
}
Men HOSOMEN, FUTOMEN, HIRAMEN, TIDIREMEN;
RamenMen : oneof [ HOSOMEN, FUTOMEN, HIRAMEN, TIDIREMEN ];
0062デフォルトの名無しさん
NGNGリフレクションでいくのだ。
Javaわすれたので、こんな感じか?
public class Oyaji {
private Properties menu;
public Oyaji() {
//メニューをファイルから初期化
}
public Ramen make(String order) {
String name = menu.get(order);
if (name == null)
System.out.println("うちはそんなのねーぜ、ばかやろー!");
Ramen r = (Ramen)Class.newInstance(name);
System.out.println("へい、" + order + "お待ちどう!!");
return r;
}
}
Menu.properties
しょうゆラーメン=rairaiken.ShouyuRamen
しおラーメン=rairaiken.SioRamen
みそラーメン=rairaiken.MisoRamen
とんこつラーメン=rairaiken.TonkotsuRamen
これらのクラスは、Ramenを継承してできてる。
プロパティを変えれば、他の店用にカスタマイズ可能。
0063デフォルトの名無しさん
NGNGそれじゃ甘いよ
ラーメンの初期化をどうやってやるんだい?
ここは、2段構えのファクトリじゃないとね
String recipeName = menu,get(order);
Recipe recipe = (Recipe)Class.newInstance(recipeName);
Ramen ramen = recipe.create();
return ramen;
プロパティファイルは、
しょうゆラーメン=rairaiken.ShouyuRamenRecipe
しおラーメン=rairaiken.SioRamenRecipe
みそラーメン=rairaiken.MisoRamenRecipe
とんこつラーメン=rairaiken.TonkotsuRamenRecipe
0064デフォルトの名無しさん
NGNGばかやろーのあとはOyajiRuntimeExceptionなげろよw
0065デフォルトの名無しさん
NGNGCommandPatternですか
でもレシビだけあってもつくりようがないよ
材料をどうするのさ
0066デフォルトの名無しさん
NGNG個別のRecipeが知ってる。
0067デフォルトの名無しさん
NGNGKyaku.taste(ramen) => "マズッ"
0068デフォルトの名無しさん
NGNG魔法のレシピじゃないんだから、、、
0069デフォルトの名無しさん
NGNG0070デフォルトの名無しさん
NGNGレシピをもっと分析してみろよ
レシピは
材料の種類と分量
作成手順
から構成されるだろうね
レシピは、スープや麺のサブレシピから構成されることもあるから
入れ子にできた方がいいね
作成手順は順番にとれるといいので、イテレータ的にとれるといいね
同時に並行してやる作業もあるだろうから
作成手順の入れ子にできたほうがいいだろうね
まあいずれにしてもレシピの役割はここまでだね
材料集めとかはこのレシピを渡されたオブジェクトがやるだろ
0071デフォルトの名無しさん
NGNGzairyo = oyaji.get_zairyo(order);
ramen = oyaji.make(recipe, rezairyo);
return ramen;
でどうよ
0072デフォルトの名無しさん
NGNGこうのほうがいいんじゃね?
recipe = oyaji.get_recipe(order);
zairyo = oyaji.get_zairyo(recipe);
ramen = oyaji.make(recipe, zairyo);
return ramen;
0073デフォルトの名無しさん
NGNGそのほうがいいな
0074デフォルトの名無しさん
NGNG0075デフォルトの名無しさん
NGNGそのまえにサービス(業)は最初からマルチスレッドだろ普通
0076デフォルトの名無しさん
NGNG0077デフォルトの名無しさん
NGNG0078黒死犬 ◆EgxBlf8nvc
NGNGPrintWriter ord = null;
try {
ord = new PrintWriter(oyaji.getEar());
ord.println("豚骨ラーメン");
ord.println("オレンジジュース")
catch(MenuNotFoundException e) {
ord.println("許して下さい");
} finally {
ord.close();
}
0079デフォルトの名無しさん
NGNGなるほど、さすがだな
FiFOの伝票スタッカーは必要だな
0080デフォルトの名無しさん
NGNG0081デフォルトの名無しさん
NGNGメッセージキュー使って、JMSでアクセスしようze
0082デフォルトの名無しさん
NGNG実装のことを言ってるわけ
実装しなかったらラーメン屋の親父でさえシングルスレッドだ
0083デフォルトの名無しさん
NGNGいや、ぜったいとなりに母ちゃんはいるから
かならずマルチスレッド
0084デフォルトの名無しさん
NGNGアルバイト募集すればいいだろ?
0085デフォルトの名無しさん
NGNG0086デフォルトの名無しさん
NGNGイベントハンドラ登録しとけ
0087デフォルトの名無しさん
NGNG店員が親父1人でも基本的には複数注文を受けられるからこれでマルチスレッド。
008887
NGNG0089デフォルトの名無しさん
NGNGpublic void customerEntered(ShopEvent ev);
public void customerOrdered(ShopEvent ev);
public void customerPayed(ShopEvent ev);
public void customerExited(ShopEvent ev);
}
public class Oyaji implements ShopListener {
public void customerEntered(ShopEvent ev) { System.out.println("いらっしゃい!!"); }
public void customerOrdered(ShopEvent ev)
{ make(ev.getOrder()); }
public void customerPayed(ShopEvent ev) { System.out.println(ev.getOrder().getPrice() + "円になります"); }
public void customerExited(ShopEvent ev) { System.out.println("まいど!!"); }
}
0090デフォルトの名無しさん
NGNG店長はオヤジが兼ねている場合が多いんじゃないだろうか。
OyajiはShopManagerも実装すべきでは。
0091デフォルトの名無しさん
NGNG見たところ糞スレにしか見えないんだが?
0092デフォルトの名無しさん
NGNG0093デフォルトの名無しさん
NGNG0094デフォルトの名無しさん
NGNG「チケット販売機」を追加してくれたまへ。
0095デフォルトの名無しさん
NGNGkappu_ra_men.insert(kayaku);
kappu_ra_men.insert(oyu);
kappu_ra_men.wait(3);
this->eat(kappu_ra_men);
if(this->isDelicious()){
this->shout("ウマー");
}else{
this->shout("マズー");
}
このスレは、マ板にいくべきだと思いますが。
0096デフォルトの名無しさん
NGNG{
delete soup;
return EXIT_TODAY_HEITEN;
}
0097デフォルトの名無しさん
05/03/16 20:41:370098デフォルトの名無しさん
05/03/17 00:24:51一人消しても、また一人・・・
おまえらスライムか?
なんでOOPL扱えないくせに、OOについて語ってるんだよ。
Cでポリモーフィズムできるようになってから出直して来い。
Vectorなどのコンテナークラスは、オブジェクトを格納できるわけだけど、
明らかにポインタを格納するバグはでないだろ?
それから、最近2chのレベル低くなりすぎ。
数値計算やアルゴリズム、データ構造それから
少なくても、2つ以上の言語についてしっかり知っとけ。
OSやらハードウエアに関する本も少しは読め。
数学の本も少し読んどけ。
サーバーサイドプログラミングはレベル低い。これ事実。
覚える事はいっぱいあるかもしれないけどレベル低いんだよ。
DB周りは特に勘違いしてる奴が多い。
SQL使えるからなんだっつーの?
SQLサーバー自作してから言え。
サーバーサイドの奴は、少し視野を広げろ。
最後に、仕事でプログラムやってるやつは
趣味でなんか作れ。
0099デフォルトの名無しさん
2005/06/01(水) 19:25:240100デフォルトの名無しさん
2005/06/02(木) 19:24:380101デフォルトの名無しさん
2005/07/10(日) 22:22:56限定メニューみたいなイベントに対応できる柔軟なパラメータ設計が大切
と考えていて気がついたんだけど、運用していくと馴染みの客が「いつもの」
って言ったりしても通じるDBは必要じゃないかな。
もっとも、sinasoba_sanoパターンならそういうのは一切不要か。
ここまで見た限りでは、oyajiはsanoである事を前提にしてる感じだけど。
■ このスレッドは過去ログ倉庫に格納されています