#暗号解読 第29回 クリアしました
■にも■■と■ろか■あ■ぷる■■■■■りた■■■、まず■■ちゅ■■■し■え■■て■■■■■。
https://puzzlega.me/cryptogram/
#暗号解読 第29回 クリアしました
■にも■■と■ろか■あ■ぷる■■■■■りた■■■、まず■■ちゅ■■■し■え■■て■■■■■。
https://puzzlega.me/cryptogram/
Config ObjectじゃなくてBuilderパターンが流行った理由ってなんなんだろう
Config ObjectのすべてのフィールドがpublicかつmutableならBuilderと同じ働きをするはずだからinitializerはあんまり関係ない気がする
@teobot 2番がよく分からないんだけど「オブジェクト生成後に状態が変わらない」っていうのはオブジェクトがもつフィールドの話?それともBuilderの話?
コンストラクタでしか設定できないフィールドがあるのは別にどうでもよくて、Builderのsetterを呼び出すのとConfig Objectのフィールドに直接代入するのって同じじゃない?という主張です
BuilderパターンならBuilderの生成するインスタンスやBuilder自体の実装をDI対象にできる、なるほど? https://stackoverflow.com/a/3394880
とはいえ実際は直接フィールドを読み書きするパターンはダサい、みたいなカプセル化全盛の空気感の時代にGoF本が現れたからという単純な理由のような気もする
よっぽど変なことしなければConfig Objectを取るFactory patternでDI可能性に関してもほぼ同じになるはずだし……
@teobot そしたらruneの意味での文字列長をO(1)で返してくれるようなstringのwrapperライブラリってなんかない?
@teobot 毎回utf8.RuneCountInStringって書くの面倒だし効率も悪いから代替手段を探してるんだよね
@teobot 文字列長をフィールドとして持つwrapperを作るとして、こいつに += で文字列結合できるようにoperator overloadすることってできる?
@teobot なるほどね。+=は諦めるとして、こいつを%sで普通のstringかのように出力するにはStringerを実装すればいいんだっけ?
抽象機械の上の操作をすべて書き下したものではなく、抽象化の入ったメタアルゴリズムの類であるというのはそう