Skrót klawiaturowy na tworzenie nowego folderu w Windows 7
Tworzenie folderów nie zawsze należało do przyjemnych czynności. Szczególnie, gdy trzeba było ich utworzyć wiele. Wielką niedogodnością było to, że pracując z klawiaturą należało przełączyć się na chwilę w tryb „mlasków”. Poza tym, trzeba było użyć co najmniej dwóch kliknięć, aby utworzyć folder. Pięknie ilustruje to obrazek poniżej.
Na całe szczęście od wersji Windows 7 możemy skorzystać z magicznego skrótu klawiaturowego:
CTRL + SHIFT + N
Dodatkowo bardzo przydatny okazuje się (myślę że dobrze znany) skrót,
F2
Który z kolei potrafi zmienić nazwę wybranego folderu.
Co więcej, pewnym ułatwieniem jest pokazywanie przycisku tworzenia nowego folderu wprost na pasku menu.
Co mają ze sobą wspólnego DIP, IoC, DI ?
Bohaterami tego wpisu są skróty DIP (Dependency Inversion Principle), IoC (Inversion of Control) oraz DI (Dependency Injection). DIP jest podejściem stosowanym w nowoczesnym ujęciu programowania zorientowego obiektowo. W internecie aż roi się od różnego opinii i stwierdzeń odnoszących się do tego podejścia, co może wprowadzać lekką konsternację w jego rozumieniu . Wielu programistów (i nie tylko) miesza pojęcia DIP, IoC oraz DI, co sprawia, że nie dokońca zrozumiałe jest jaki problem opisują i jak chcą go chcą rozwiązać. Aby zebrać to wszystko w logiczną całość przedstawię szereg problemów jakie DIP może rozwiązać oraz kiedy i jak je zastosować.
Zacznijmy od pojęcia DIP. Jest ono bardzo ogólne, a wymagania jakie stawia przed oprogramowaniem ujmuje się w dwie reguły:
- Moduły wysokiego poziomu nie powinny być zależne od modułów niższego poziomu. Oba poziomy powinny zależeć od abstrakcji.
- Abstrakcja nie powinna zależeć od szczegółów. Detale powinny zależeć od abstrakcji.
Zasada DIP odnosi się do ogólnego podejścia z jakim mamy doczynienia podczas projektowania oprogramowania. Używając tego określenia nie mówimy o żadnej konkretnej implementacji, a jedynie zgadzamy się z tym, że moduły wyższego poziomu nie powinny zależeć od mudułów niższego poziomu. To co chcemy osiągnąć, to uzyskanie takiego podejścia, w którym zmiany w modułach niższych nie będą miały wplywu na moduły wyższe. Cały czas tutaj nie mówimy nic na temat w jaki sposób to osiągnąć.
Inversion of control jest pewnego rodzaju paradygmatem, który umożliwia realizację DIP. Ale samo w sobie IoC nie zapewnia konkretnej implementacji. IoC można podzielić na grupy implementacyjne :
- Interface inversion
- Flow inversion
- Dependency creation / Binding inversion.
Z kolei, Dependency Creation może być realizowana przez następujące wzorce:
- Factory Pattern
- Service Locator
- Dependancy injection
I teraz jedną z implementacji Dependancy creation może być Dependancy Injection. Jak widzimy ID nie jest jedyną formą realizacji IoC.
Aby zebrać to wszystko razem w jedną całość zależności te można przedstawić schematycznie w postaci następującego rysunku:
Kilka przydatnych linków
http://pl.wikipedia.org/wiki/Odwr%C3%B3cenie_sterowania
http://pl.wikipedia.org/wiki/Wstrzykiwanie_zale%C5%BCno%C5%9Bci
http://martinfowler.com/articles/injection.html#UsingAServiceLocator
http://en.wikipedia.org/wiki/Dependency_inversion_principle
http://martinfowler.com/bliki/InversionOfControl.html
http://msdn.microsoft.com/en-us/library/ff648968.aspx
http://msdn.microsoft.com/en-us/library/dd458907.aspx
http://msdn.microsoft.com/en-us/library/dd458879.aspx