『関数型デザイン』(Robert C. Martin 著、角 征典 訳) その10−2
第16章「デザインパターンの評価」
本に記載されてるソースを補って、動作を確認した(不親切すぎる!)。
;;=================
(ns abstract-factory-example.core
(:require [abstract-factory-example
[shape :as shape]
[square :as s]
[circle :as c]
[shape-factory :as sf]
[shape-factory-implementation :as sfi]
]))
;;=================
(ns abstract-factory-example.shape-factory)
;; OK
(defmulti make-circle
(fn [factory center radius] (::type factory)))
(defmulti make-square
(fn [factory top-left side] (::type factory)))
;; ディスパッチ対象なしの処理(同じファイルでないとダメみたい)
(defmethod make-circle :default [ _ _ _ ] "oops")
(defmethod make-square :default [ _ _ _ ] "oops")
;; "the 90-degree rotation" proof
(defmulti make2
(fn [factory type & args]
(::type factory)))
;;=================
(ns abstract-factory-example.shape-factory-implementation
(:require [abstract-factory-example
[shape-factory :as sf]
[square :as s]
[circle :as c]
]))
(defn make []
{::sf/type ::implementation})
(defmethod sf/make-circle ::implementation
[factory center radius]
(c/make center radius))
(defmethod sf/make-square ::implementation
[factory top-left side]
(s/make top-left side))
;; "the 90-degree rotation" proof
(defmethod sf/make2 ::implementation
[factory type & args]
(condp = type
:square (apply s/make args)
:circle (apply c/make args)))
;;=================
(ns abstract-factory-example.shape)
;; OK
;;(defmulti to-string (fn [s] (::type s)))
(defmulti to-string ::type :default ::everything-else)
;; ディスパッチ対象なしの場合の処理
(defmethod to-string ::everything-else [ _ ] "oops")
;;=================
(ns abstract-factory-example.circle
(:require [abstract-factory-example.shape :as shape]))
(defmethod shape/to-string ::circle
[c]
(str "Circle center:" (::center c) " radius:" (::radius c)))
(defn make [center radius]
{::shape/type ::circle
::center center
::radius radius})
;;=================
(ns abstract-factory-example.square
(:require [abstract-factory-example.shape :as shape]))
(defmethod shape/to-string ::square
[s]
(str "Square top-left:" (::top-left s) " side:" (::side s)))
(defn make [top-left side]
{::shape/type ::square
::top-left top-left
::side side})
;;=================
abstract-factory-example.core=> (def square (sf/make-square (sfi/make) [10 11] 12))
'abstract-factory-example.core/square
abstract-factory-example.core=> (shape/to-string square)
"Square top-left:[10 11] side:12"
abstract-factory-example.core=> (def circle (sf/make-circle (sfi/make) [10 11] 12))
'abstract-factory-example.core/circle
abstract-factory-example.core=> (shape/to-string circle)
"Circle center:[10 11] radius:12"
;;=================
;; "the 90-degree rotation" proof ver.
abstract-factory-example.core=> (def square2 (sf/make2 (sfi/make) :square [10 11] 12))
'abstract-factory-example.core/square2
abstract-factory-example.core=> (shape/to-string square2)
"Square top-left:[10 11] side:12"
abstract-factory-example.core=> (def circle2 (sf/make2 (sfi/make) :circle [10 11] 12))
'abstract-factory-example.core/circle2
abstract-factory-example.core=> (shape/to-string circle2)
"Circle center:[10 11] radius:12"
0 notes
Buy Ray-Ban SQUARE2 RB1973 Blue Women's Sunglasses at the best price.
Shop now at funowls.com or contact us at 888-735-2040.
0 notes
Square2: The Journey of a Water Elemental Mage
My new original story!
Synopsis: Alula Moreno is used to being prosecuted for the magic she was born with. Using her last energy to blast the place where she was held, with her only regret was to never meet her soulmate, she dies. Or at least that was the plan. She wakes once again as Astra to a world where Magic is widely known and accepted. Now, can she ignore her cautions and finally start enjoying her life? And what's this about finding her soulmate in this world? And what? It's not only one, but four?! Oh, well. At least she only has to worry about them. Hopefully, they're no important figures... Though there are some dangers that lurk beneath the mask of peace this world of Emain proclaims to have achieved, will she uncover them all? Not only the kingdoms but the faith will have to be cleansed.
2 notes
·
View notes
Girl
146 notes
·
View notes
If you really think about it.. a rice bowl is just one giant sushi 🤪 • @keikaisendon.sg specialises in kaisendon which literally translates to fresh seafood rice bowl. We tried their Hotate Kaisendon and Ebi Mentaiyaki Kaisendon. The rice bowls were generously filled with fresh and delicious sashimi. So oishii! 😋 • You can visit Kei Kaisendon at one of their 5 outlets in Singapore: - Novena Square 2, #02-95 - Paya Lebar Square, #01-84 - Suntec City Mall, #02-372 - One Raffles Place #04-30 - Marina Square #02-266 • Thank you @keikaisendon.sg for hosting us! 💛✨ • #BeyondNormEats #keikaisendonsg #keikaisendon #kaisendon #square2 #japanesefood (at Kei Kaisendon) https://www.instagram.com/p/B5X92jlpbGW/?igshid=1bvabl2858ml2
0 notes
#square2 (à Berck-Sur-Mer, Nord-Pas-De-Calais, France) https://www.instagram.com/p/B4KBs-Dolfo/?igshid=mu8nh1vqpx2d
0 notes
Magic Sea
*~Supplies Needed~*
Tube of choice im using art Elias Chatzoudis of you can find his art Here
Scrap kit used is "Magic Sea" by Bibi you can find her kits Here
Template by Tinas Magical Scrap World Here
Mask of choice i used MB & SW mask 17 Here
*~Filter Used~*
Unplugged x-Interlace
Eyecandy4000-Gradient Glow
Xero - Fritillary
*~Font Used~* Fely
Let us Start!
Open up the template shift +d to duplicate it close out the original. Delete these layers first : ©Info,Dotted Circles,Start at the bottom on layer "spots". Mark and open paper 9 add as new layer,go to plugins -Dbs flux-Bright noise With these settings: Intensity:45 Darker, then add a drop shadow With these settings: H 2 V 2 Opacity 60 Blur 4, change the H&V to -2. Now move up to layer "pink square" mark and open paper 10 add as a new layer - invert and delete. Then go to plugins -xero-fritillary With these settings: 5 - 32 - 52 - 131. Now move up to layer "small square1" mark and open paper 9 add as new layer, then go to plugins -xero-fritillary With these settings: 5 - 32 - 52 - 131,then add a drop shadow With these settings: H -2 V -2 Opacity 60 Blur 4. Now move up to layer "small square2" mark and open paper 9 add as new layer,then go to plugins -xero-fritillary With these settings: 5 - 32 - 52 - 131,then add a drop shadow With these settings: H -2 V -2 Opacity 60 Blur 4. Go to layer "center circle" mark and open paper 4 paste as new layer do the same to layer "left circle and right circle" to,then go to xero-fritillary With these settings: 5 - 32 - 18 - 67. Go to layer "right circle and add drop shadow With these settings: H 2-V 2 Opacity 60 Blur 4. Then go to layer "right circle" and add drop shadow With these settings: H -2 V -2 Opacity 60 Blur 4. Then go to layer "center circle" and add drop shadow With these settings: H -2 V -2 Opacity 60 Blur 4,then again but this time With these settings: H -2 V -2 Opacity 60 Blur 4. Now you go to layer "center rec" and open up the tube of choice and use a part of the tube then mark,add as new layer - invert and delete same to the "left rec" and "right rec" then right click -properties-luminescence legacy, duplicate and go to properties again and choose screen .Do the same to the tube layer on "left rec" and "right rec." Then you go to tube layer "center rec" plugins - VanDerLee - Unplugged X-Interlace With these settings: 1- 50 -50 -1 - 0 - 50 Transparency: 0 Normal, do this again to "left rec" and "right rec" tube layers.Then take the tube of choice and paste it as a new layer on top of all layers,move it with your moving tool were you want it to be. Then you open paper 4 and go to layers - load/save mask and find the mask you want to use then you add it to the background layer.
←Elements→Open element 100 (shell) and paste it on the layer under the tube layer on the bottom. Open element 104 and paste it on top of the close up background,duplicate it and mirror. Open element 47 and paste it on top of the right rectangle and again on each sides. Open element 91 and paste it on top of pink square layer and go to Eyecandy4000-Gradient Glow
With thesesettings: Glow Width: 3.00 Soft Corners: 25 Overall Opacity: 100.
Open the sand element and paste it under the tube layer,duplicate and move it what you think looks best.
Add copyright and name and you are done!
3 notes
·
View notes
What's on this weeked 9 November 2019
What’s on this weeked 9 November 2019
What’s on this weekend. Please email
[email protected] to include your event in our listings.
What’s on
At King’s Cross, meet Sharon Drew, at her show Immersion,
Details here.
Sarah Jane Moon will be at her show, Queer Portraits in Brixton. Moon will be leading tours of the show in between working on a new portrait at the exhibition.
Tours are at 2pm Sat and Sun. Details here.
Last chance to…
View On WordPress
0 notes
NEU @ NOVENA 新颖轩 The most awaited launch in District 11, Novena! DOORSTEPS TO WONDERS IN NOVENA! 🦶🏻Doorstep to Novena MRT 🦶🏻Doorstep to Velocity & Square 2 🦶🏻Doorstep to Health City Novena (Masterplan) 🦶🏻Doorstep to leaving behind your legacy (Freehold) 🦶🏻Doorstep to your investment choice Launching Real Soon! Register your interests with me now! William Koh 90271972 PropNex #WilliamKoh #NeuatNovena #Freehold #Doorsteptowonders #InvestSingapore #NovenaMRT #SJIJr #Velocity #Square2 #UnitedSquare #Realtor #YourTrustedAssetPlanner #Tagger https://www.instagram.com/p/B2VmvRMHIVQ/?igshid=11bwjw2plolr6
0 notes
#endofday with #awfullychocolate #chocolate #shop at #square2 #singapore #dessert #food for #sweettooth #foodie #foodporn #foodphotography (at Square 2)
0 notes
0 notes
120 notes
·
View notes
Magical bag โลกตะมุตะมิในกระเป๋าเวทมนตร์━☆・*。 /แอบมาสปอยลายสินค้า Fanart ที่จะลงขายในงาน comic square2 วันที่10 นี้ล่ะ มีทั้งกระเป๋า พวงกุญแจ สติกเกอร์ เด๋วว่าจะมาเปิดพรีออเดอร์ให้สั่งจองทางเนต วันมะรืนน้า;) #fantasticbeasts #fanart #hogwarts #harrypotter #illustration #bag https://www.instagram.com/p/BudlloCFOIu/?utm_source=ig_tumblr_share&igshid=s4cd7timqc2l
1 note
·
View note
Spotlight on Natalia Zagorska-Thomas, Studio ExPurgamento
Spotlight on Natalia Zagorska-Thomas, Studio ExPurgamento by Meike Brunkhorst @art_consult #spotlighton #womeninart #WIA #wearewia #factorm
By Meike Brunkhorst
Natalia Zagorska-Thomas is an artist, textile conservator and gallerist.
Natalia Zagorska-Thomas in Julia Schrader’s wearable sculpture. Studio ExPurgamento
Provided you avoid mistaking Camden Road for Camden Street before finding the bell for 132D in the correct Victorian terrace in Camden Town, Studio ExPurgamentois not hard to find. Once buzzed in, you may be escorted up…
View On WordPress
0 notes
みんな大好きなあのカルトムービーをサンプリングしたTシャツ、お待たせしましたの復刻。 パンチの効いたバックプリントはそのままに、胸は劇中の演出に欠かせないタバコにちなんだグラフィックになりました。 着火ファイヤーだぞと。 8/21-のポップアップ限定アイテム。 週明けの8/23にうちのオンラインストア @nevermind_tokyo にもアップします。 –––––––––––––––––– Square2 Tee white, sandstone, sky blue M - XXL –––––––––––––––––– I Said Goddamn. Pop-Up Store in @blackanny_tko 8/21-29 exclusive. #flatlux #pulpfiction #chukkafire https://www.instagram.com/p/CSwg64sleS8/?utm_medium=tumblr
0 notes