dotnetomaniak.pl

dotnetomaniak.pl - Artykuły z tagiem Wzorce projektowe

Od jakiegoś czasu nosiłem się z zamiarem rozpoczęcia na tym blogu jakiegoś cyklu wpisów – od czasu kiedy popełniłem serię wpisów przygotowujących do egzaminu MCSD: 70-480 minęło już trochę czasu… Zastanawiałem się trochę nad tematem i ostatecznie postanowiłem, że będzie to implementacja różnych wzorców projektowych w C#. Wiem, wiem… Temat wzorców jest dość podstawowy, jednak moim zdaniem fajnie będzie zebrać je wszystkie w jednym miejscu, a przy okazji uporządkować sobie trochę wiedzę na ich temat. Posta...

Dziel się z innymi:
burczu programator - blog | Wzorzec Strategia – implementacja w C#

Sztuka programowania 1470 dni, 19 godzin, 43 minuty temu burczu 433 rozwiń

Z pewnością sporo osób zetknęło się z wzorcem MVVM (Mode View ViewModel), należącym do wzorców prezentacji (takich jak MVC lub MVP – z którego nota bene się on wywodzi), albo o nim słyszało. Wykorzystuje się go w oprogramowaniu wykorzystującym Windows Presentation Fundation (WPF). Nie zamierzam się tutaj wgłębiać w meandry tego wzorca. Chciałem się tylko odnieść do pewnej jego (nomen omen) właściwości, dotyczącej sposobu powiadamiania widoku, że właściwość modelu uległa zmianie. Dokonuje się tego ...

Me z .NET tete-a-tete » Wzorcu wszak twoją jest rolą utrzymać kod pod kontrolą.

Sztuka programowania 1528 dni, 3 godziny, 14 minut temu PaSkol 169 rozwiń

Unikaj przekazywania nulli. Jeśli nie będziesz ich przekazywał nie będziesz musiał sprawdzać czy ich nie masz. Prosto powiedzieć – trudniej zrobić. Proste rzeczy to przekazywanie pustych kolekcji, Null Object Pattern. Jednak to drugie może dobrze działać dla serwisów, ale już gorzej dla Value Objects. Często pojawiającym się kodem jest wyciąganie obiektów z repozytorium. va...

Dziel się z innymi:
Null References: The Billion Dollar Mistake | Show me the code

Sztuka programowania 1571 dni, 7 godzin, 49 minut temu Paweł Łukasik 271 rozwiń

Po ponad miesiącu od ostatniego wpisu (niestety, mimo chęci, nie mogłem znaleźć chwili wolnego czasu) poruszę dzisiaj temat jednego z najczęściej używanych wzorców projektowych – Factory Method. Przy użyciu tego wzorca, możemy w prosty sposób zaimplementować funkcjonalność związaną z wytwarzaniem konkretnych “produktów” przez konkretne “fabryki”.

Dziel się z innymi:
Wzorzec Factory Method

Sztuka programowania 1596 dni, 12 minut temu jedmac 384 rozwiń

Chciałem przypomnieć prezentację Pawła Łukasika zatytułowaną Kurs programowania w C# – 24. Wzorce projektowe, która została nagrana 1,5 roku temu na VirtualStudy. Dużo się z niej nauczyłem zwłaszcza o antyzworcach. Ostatecznie pytanie o wzorce na pewno pojawi się na rozmowie o pracę, jeśli ktoś ma wątpliwości czy warto. Chociaż fakt lepszego zrozumienia jednego z najważniejszych pojęć powinien wystarczyć. Poniższy ry...

Wzorce i antywzorce projektowe w C# | Show me the code

Sztuka programowania 1602 dni, 9 godzin, 3 minuty temu Paweł Łukasik 634 rozwiń

W .NET istnieje metoda do wykonywania pętli równolegle. Pisałem ogólne o niej kilka miesięcy temu. Temat jest jednak dużo bardziej skomplikowany i z pewnością należy zrozumieć różne podejścia do problemu. Przed zrównolegleniem pętli, należy zastanowić się czy na prawdę przyniesie to pozytywne efekty. Złe rozpoznanie przypadku spowoduje znaczącą degradację wydajności. Zastanówmy się na co należy zwracać uwagę:Czy poszczególne elementy tablicy można przetwarzać w sposób bezpieczny (thread-safe). Jeśli nie...

Dziel się z innymi:
Piotr Zieliński » Pętla wykonywana równolegle–statyczne przydzielanie wątków

Sztuka programowania 1605 dni, 21 godzin, 13 minut temu Paweł Łukasik 168 rozwiń

Nie wszystko co kwacze to kaczka Czasem rzeczy są podobne ale jest to przypadkowe podobieństwo. To są w rzeczywistości różne rzeczy Przykład z życia, akurat bardzo niskopoziomowy. Potrzebowałem posklejać takie jakby “ścieżki”, separatorem był underscore (najlepsze polskie tłumaczenie to podłoga) “”. Przykładowo contentcolors_red. Rzuciło mi się, że mamy już napisany kod metody System.IO.Path.Combine(). Mo...

Dziel się z innymi:
Nie przesadzić z DRY | Show me the code

Sztuka programowania 1610 dni, 21 godzin, 34 minuty temu Paweł Łukasik 293 rozwiń

Tło problemu - jest wystawiony opasły Windows Service po remotingu. Implementacja to wielka klasa z dziesiątkami metod, typowe legacy code. Z pewnych architektonicznych przyczyn zostało postanowione, że cykl życia komponentów rejestrowanych w Castle, wykorzystywanych w wyżej wymienionych, dziesiątkach metod, musi by...

Źródło: blog.gateapp.com
Dziel się z innymi:
Remoting i szybkie udekorowanie głównego typu serwisu | Konrad :: DevBlog

Sztuka programowania 1625 dni, 3 godziny, 26 minut temu corrado 131 rozwiń

O wzorcach projektowych w ASP.NET MVC słyszał chyba każdy. Większość z nas przynajmniej raz widziała jakiś filmik instruktażowy bądź wideokonferencję promującą stosowanie właściwych wzorców na tej platformie. Jednakże po opanowaniu teorii przychodzi wreszcie pora na to, aby wcielić ją w życie. Co się wtedy okazuje?

Simple Solutions: O pomyłkach i wnioskach z pracy w ASP.NET MVC

Web 1633 dni, 10 godzin, 37 minut temu http://horusiath.blogspot.com/ 391 rozwiń

by MJ Decorator is a design pattern used to dynamically ”decorate” (e.g. add new actions) another classes. Let’s say that you have class which describes Window. It can be opened or closed. Then, you decide to decorate it with curtains or to clean it – you  will do it yourself or hire somebody, who will be a decorator. Let’s create a simple project: 1) First of all, you need to add “Decorator” folder. Inside of this folder please create Window.cs class which will describe our window in the real world...

[EN] World of IT | Design Patterns – Decorator

Architektura 1645 dni, 4 godziny, 41 minut temu jedmac 162 rozwiń

by MJ Prototype design pattern. You should use it whenever you need to clone model classes. A simple example is when you have 1000 clients and you need to provide them invoices. Then, you only need to change e,g, names, surnames and total amount – you don’t need to create another invoice from the beginning. Again, the same situation is when your class is a parent for other classes – in this situation, it is not easy to create new – you should clone existing instance and then try to modify it. Here is a...

[EN] World of IT | DESIGN PATTERNS – PROTOTYPE

Architektura 1645 dni, 11 godzin, 30 minut temu jedmac 117 rozwiń

by MJ Facade is one of design patterns which are used most frequently. To explain what it is and how to use it, we can compare it to a black box. In black box test, tester is only allowed to create the input and get the output. He doesn’t know anything about processing inside of the system. You will meet similar situation in Facade – you don’t want to show out the whole functionality, you need to create some kind of interface which enables user to use the functonality, but he  cannot look into the syste...

[EN] World of IT | Design Patterns – Facade

Architektura 1650 dni, 13 minut temu jedmac 175 rozwiń

Wpis ma na celu przybliżyć różnice pomiędzy najbardziej popularnymi architektonicznymi wzrocami projektowymi.

Źródło: rpajak.com
Dziel się z innymi:
Wzorce prezentacji MVC MVP MVVM – różnice » Robert Pająk - Blog

Architektura 1660 dni, 2 godziny, 49 minut temu Pellared 894 rozwiń

O tym, czym jest redundacja wie chyba każdy programista. Każdy z nas wie również, że jest to zjawisko nieporządane i w większości wypadków lepiej mu zapobiegać. Ten post przeznaczę na opis przykładowego zjawiska powtórzeń w zapytaniach LINQ spotykanego w sytuacjach codziennych oraz prostym i czytelnym ich rozwiązaniu, o którym nieraz zapominamy.

Dziel się z innymi:
Simple Solutions: O redundancji w wyrażeniach LINQ

Sztuka programowania 1813 dni, 6 godzin, 4 minuty temu http://horusiath.blogspot.com/ 246 rozwiń

Po odłożeniu kodu na weekend, jego przeglądzie i uwzględnieniu komentarzy, można uznać proces refaktoryzacji za zakończony. Pisząc „proces” mam tu na myśli wykonanie refaktoryzacji o ściśle określonym celu – w tym przypadku było to stworzenie mechanizmu importu, który zastąpi używany obecnie. Nie wchodziły zatem w ten proces...

Me z .NET tete-a-tete » Nadeszła pora na cykl publikacji: „Historia pewnej refaktoryzacji”. Podsumowanie.

Sztuka programowania 1868 dni, 45 minut temu PaSkol 82 rozwiń

Założę się, że wiele osób czytając ten tytuł puknie się w głowę. I owszem w wielu sytuacjach wzorce nie są niezbędne do tworzenia przejrzystych i dobrze rozwijalnych skryptów. Do czasu. Dokładnie do momentu gdy nasz skrypt zaczyna mieć więcej niż kilkadziesiąt linijek.

Dziel się z innymi:
Simple Solutions: Javascript a wzorce projektowe

Sztuka programowania 1872 dni, 3 godziny, 48 minut temu http://horusiath.blogspot.com/ 201 rozwiń

Ostatnią z czynności refaktoryzacyjnych będzie przystosowanie dotychczasowej klasy MethodObject do używania powstałych w trakcie refaktoryzacji klas. Jak można sprawdzić w części drugiej, klasa ta posiadała cztery publiczne metody: ImportCSV(), ImportTabSeparated(), ImportFixed(), ImportBinary(). Metody te były następnie wykorzystywane przez interfejs użytkownika do wykonywania odpowiednich importów. Te metody muszą zostać zachowane, zmieni się natomiast ich implementacja. Zmianie ulegnie też...

Me z .NET tete-a-tete » Nadeszła pora na cykl publikacji: „Historia pewnej refaktoryzacji”. Część 19.

Sztuka programowania 1876 dni, 11 godzin, 23 minuty temu PaSkol 34 rozwiń

W dotychczasowym procesie refaktoryzacji udało nam się stworzyć elastyczny mechanizm importu – uzyskaliśmy tym samym podstawową funkcjonalność w zadowalającej postaci. Pora zająć się pozostałymi operacjami, które są niezbędne, aby uzyskać kompletną, pierwotną funkcjonalność refaktoryzowanego kodu. Na implementację oczekują przecież: zdefiniowany na początku interfejs IFileSelector i jego pochodna IFilteredFileSelector. Konieczne jest też zaimplementowanie ...

Me z .NET tete-a-tete » Nadeszła pora na cykl publikacji: „Historia pewnej refaktoryzacji”. Część 18.

Sztuka programowania 1877 dni, 18 godzin, 58 minut temu PaSkol 42 rozwiń

Jak obiecałem – dziś uzupełnimy dotychczasowy zestaw testów o nowe testy. Co będziemy testować? Jeśli ktoś uważnie śledzi ten cykl zapewne oczekuje, że – zgodnie z wcześniejszymi zapowiedziami – przygotujemy test sprawdzający uruchamianie wszystkich metod biorących udział w przetwarzaniu pliku oraz dostosujemy stare testy sprawdzające powiadamianie o postępie przetwarzania. Tak – takie testy zostaną napisane. Ale najpierw utworzymy testy, których do tej pory nie było. Proszę zauważyć, że ...

Me z .NET tete-a-tete » Nadeszła pora na cykl publikacji: „Historia pewnej refaktoryzacji”. Część 17.

Sztuka programowania 1876 dni, 11 godzin, 23 minuty temu PaSkol 57 rozwiń

W tym wpisie zaprezentuję dwie klasy dziedziczące po FileOfValuesReader i realizujące odczyt z plików tekstowych oraz binarnych. Obie klasy będą współpracować z odpowiadającymi im klasami wyodrębniającymi wartości z odczytanej zawartości. A ponieważ dopełnią one całości mechanizmu importu, to przygotuję także odpowiednie testy, które pozwolą upewnić się, że mechanizm importu nadal działa tak samo. Jako pierwszą zaimplementuję ...

Me z .NET tete-a-tete » Nadeszła pora na cykl publikacji: „Historia pewnej refaktoryzacji”. Część 16.

Sztuka programowania 1879 dni, 11 godzin, 52 minuty temu PaSkol 35 rozwiń

1 2 3 4
Szkolenia SecurITum

maj

26.

wrzesień

21.
Dev#
Gdańsk, Stary Maneż
Dodaj nowe Zobacz wszystkie

Najaktywniejsi

1

Paweł Łukasik (32 867,57)

2

macko (32 816,53)

3

pzielinski (27 178,29)

4

gordon_shumway (21 178,88)

5

paduda (20 336,33)

6

psz750 (13 018,14)

7

rroszczyk (10 391,37)

8

Damian (9 515,21)

9

danielplawgo (7 311,04)

10

arek (6 807,95)

11

burczu (6 214,22)

12

PaSkol (5 393,84)

13

lukaszgasior (4 097,38)

14

jj09 (3 798,06)

15

dpawlukiewicz (3 581,94)

16

spetz (3 418,34)

17

AdrianBystrek (3 330,83)

18

jedmac (3 318,39)

19

http://jakub-flor... (3 224,66)

20

CaMeL (2 954,87)