Hatena::Groupimplementationpatterns

sumim が Implementation Patterns と SBPP の比較を通じて Ruby と Java を学ぶ日記

2007-11-27

とりあえずパターン一覧の比較

12:26 | はてなブックマーク - とりあえずパターン一覧の比較 - sumim が Implementation Patterns と SBPP の比較を通じて Ruby と Java  を学ぶ日記 とりあえずパターン一覧の比較 - sumim が Implementation Patterns と SBPP の比較を通じて Ruby と Java  を学ぶ日記 のブックマークコメント

d:id:sumim:20071125:p1 より再掲)

● 共通・類似の内容の項目
△ Implementation Patterns のみ
▽ SBPP のみ(うち Ruby に関連ありそうな項目に [Ruby] )

クラス

△ Class
● Simple Superclass Name
● Qualified Subclass Name
△ Abstract Interface
△ Interface
△ Abstract Class
△ Versioned Interface
△ Value Object
△ Specialization
△ Subclass
△ Implementor
△ Inner Class
△ Instance-Specific Behavior
△ Conditional
● Delegation (SBPP: Delegation, Simple Delegation, Self Delegation)
● Pluggable Selector (SBPP: Pluggable Behavior, Pluggable Selector)
△ Anonymous Inner Class
△ Library Class
▽ Pluggable Block [Ruby]

状態

△ State
△ Access
● Direct Access (SBPP: Direct Variable Access)
● Indirect Access (SBPP: Indirect Variable Access)
● Common State
● Variable State
△ Extrinsic State
△ Variable
● Local Variable (SBPP: Temporary Variable)
 ●Collector/Count (SBPP: Collecting Temporary Variable)
 ●Explaining (SBPP: Explaining Temporary Variable)
 ●Reuse (SBPP: Reusing Temporary Variable)
 △Element
 ▽(SBPP: Caching Temporary Variable) [Ruby]
△ Field
△ Parameter
● Collecting Parameter
△ Optional Parameter
△ Var Args
△ Parameter Object
● Constant (SBPP: Constant Method)
● Role-Suggesting Name (SBPP: Role Suggesting Variable Name)
△ Declared Type
△ Initialization
● Eager Initialization (SBPP: Explicit Initialization)
● Lazy Initialization
△ Control Flow
△ Main Flow

メッセージ

● Message
● Choosing Message
● Double Dispatch
● Decomposing (Sequencing) Message (SBPP: Decomposing Message)
● Reversing Message (SBPP: Reversing Method)
△ Inviting Message
△ Explaining Message
△ Exceptional Flow
● Guard Clause
△ Exception
△ Checked Exceptions
△ Exception Propagation
▽ Dispatched Interpretation [Ruby]
▽ Mediating Protocol [Ruby]
▽ Super
▽ Extending Super
▽ Modifying Super

メソッド

● Composed Method
● Intention-Revealing Name (SBPP: Intention Revealing Selector)
△ Method Visibility
● Method Object
△ Overridden Method
△ Overloaded Method
△ Method Return Type
● Method Comment
● Helper Method (SBPP: Intention Revealing Message)
● Debug Print Method
● Conversion
● Conversion Method (SBPP: Converter Method)
● Conversion Constructor (SBPP: Converter Constructor Method)
● Creation (SBPP: Constructor Method)
● Complete Constructor (SBPP: Constructor Parameter Method)
● Factory Method (SBPP: Constructor Parameter Method)
△ Internal Factory
● Collection Access Method (SBPP: Collection Accessor Method)
● Boolean Setting Method (SBPP: Boolean Property Setting Method)
● Query Method
● Getting Method
● Setting Method
● Safe Copy (SBPP: Enumeration Method)
▽ Default Value Method [Ruby]
▽ Shortcut Constructor Method [Ruby]
▽ Comparing Method [Ruby (#<=>)]
▽ Execute Around Method [Ruby]

修正:

△Safe Copy → ● Safe Copy (SBPP: Enumeration Method)


コレクション

● Array
△ Iterable
● Collection
△ List
● Set
△ SortedSet
● Map (SBPP: Dictionary)
▽ OrderedCollection
▽ RunArray
▽ Equality Method [Ruby (#eql?)]
▽ Hashing Method [Ruby]
▽ SortedCollection
▽ ByteArray
▽ Interval [Ruby (Range)]
▽ IsEmpty [Ruby (#empty?)]
▽ Includes: [Ruby (#include)]
▽ Concatenation [Ruby (#+)]
▽ Enumeration [Ruby]
▽ Do [Ruby (#each)]
▽ Collect [Ruby]
▽ Select/Reject [Ruby]
▽ Detect [Ruby]
▽ Inject:into: [Ruby (#inject)]
▽ Duplicate Removing Set → [Ruby #uniq]
▽ Temporarily Sorted Collection → [Ruby #sort / #sort_by]
▽ Stack [Ruby (Array #push, #pop, #last, #size, #empty?)]
▽ Queue [Ruby (Array #unshift, #shift, #empty?, #size)]
▽ Searching Literal [Ruby] or → [Ruby (case-when)]
▽ Lookup Cache [Ruby (cache[key]||=val)]
▽ Parsing Stream
▽ Concatenation Stream → [Ruby #<<]

(SBPP: フォーマット)

▽ Inline Message Pattern
▽ Type Suggesting Parameter Name [Ruby]
▽ Indented Control Flow
▽ Rectangular Block
▽ Conditional Expresstion [Ruby]
▽ Simaple Enumeration Parameter
▽ Cascade
▽ Yourself
▽ Interesting Return Value [Ruby]