, vaste: 1 gemeenschappelijke verantwoordelijkheid beginsel,,,,,,,,,,,,, 42 - eenheid,,,,,,, de delen van het netwerk, maandag wat in tuts + koers zal dalen tot slechts drie dollar.Niet' niet missen, een deel van de prijs van een reeks vaste principles.solid genoemd: Deel 2 in beginsel open, gemeenschappelijke verantwoordelijkheid (SrP), open /gesloten, vervanging, interface isoleren, en afhankelijk van ondersteboven.Vijf van onze beginselen van de code schreef je, elke keer als ik de definitie van,,.,,, een soort moet slechts één reden om dat te veranderen,,,, van Robert C. Martin in z 'n boek, onze beginselen van de ontwikkeling van software, de wijze en de praktijk in het boek, later opnieuw onze beginselen, model Cversie, en in de C -praktijken, en dat is een van de vijf beginselen van solide lenig.Het staat is heel eenvoudig, maar eenvoudig te realiseren, kan erg lastig zijn.Een soort moet alleen een reden om te veranderen, maar waarom?Een van de redenen waarom er zo belangrijk is?In de taal van de statische aard, en het opstellen van taal, een paar redenen kunnen leiden tot een onnodige ingezet.Als er twee verschillende redenen om te veranderen, kunnen voorstellen, twee verschillende team kan onder dezelfde code, om verschillende redenen.Elk van de oplossing zal worden ingezet, dat bij het opstellen van de taal, zoals in het geval van C + +, Cof Java), zou kunnen leiden tot met het andere team of andere onverenigbaar zijn met de toepassing van de modules.,, zelfs als je niet wordt gebruikt voor de berekening van de taal, misschien moet je de test verschillende oorzaken van dezelfde soort of de module.Dit betekent dat de kwaliteit van het meer tijd en energie van het publiek,.,, de vaststelling van een gemeenschappelijke verantwoordelijkheid, een soort of module moet er meer ingewikkelder dan een lijst zien.Bijvoorbeeld, een aanwijzing vinden wij de redenen voor de wijziging van de voor de analyse van het publiek is in onze klas.De toepassing van de procedures of systemen die door de ontwikkeling van, we zijn een specifieke module is een verzoek tot wijziging.Deze dienst zal moeten veranderen.Hier zijn een paar blokken en hun mogelijke publiek.,,, duurzame module, doelgroepen, met inbegrip van de beheerders van de database en software, architecten,., verslag, met inbegrip van het personeel van het publiek, accountants, en de exploitatie van een betaling van lonen,., het systeem voor de berekening van het publiek, met inbegrip van module, advocaten en accountants kan de manager voor een,,. Een bibliotheek beheer, met inbegrip van de beheerder van het publiek naar module, mogelijk en /of de klant zelf.,,, de rol en de acteur, die deze rol van alle specifieke moeilijk kan zijn.In een klein bedrijf, een man kan nodig zijn om te voldoen aan de verschillende rollen, maar in een grote onderneming, een paar mensen worden toegewezen aan één rol.Dus na te denken over de bezinning op de rol van het lijkt redelijk.Maar de rol is heel moeilijk te definiëren.Wat is de rol?Hoe vinden we het?Het is makkelijk om te denken dat deze rol van acteurs doen en bij het publiek en de acteurs, dus als we de redenen voor wijziging van de definitie van het publiek, de acteur worden.Dit aanzienlijk kunnen bijdragen tot de vermindering van het concept "concrete talenten als John architect" gebouwen, of "Mary" in de zin van de operatie.,,, dus de verantwoordelijkheid is een van de functies van de familie, is een bijzondere actrice.Robert C. Martin),,, bron van veranderingen in deze redenering, en voelt, wordt de functie van een acteur, veranderingen in de familie.Vanwege hun specifieke taken moeten veranderen, en de familie moeten veranderen om aan hun behoeften, een acteur is de verantwoordelijkheid voor deze verantwoordelijkheid van één enkele bron.Robert C. Martin),,,,, het klassieke voorbeeld van, "druk", het object zelf, laten we zeggen dat we een soort verpakking, het boek, het concept en de functie van een boek. En boeken (functie gettitle () {terugkeer "boeken"; de functie van getauthor (}) {terugkeer "John doe"; de functie van turnpage () {} de wijzer op de volgende blz.) ///////printcurrentpage (functie) (ECHO "van de website";}}, lijkt dit misschien een redelijk.We hebben het boek, kan zij de titel, auteur, kan het open pagina 's.Tot slot, het kan ook de huidige blz. Op het scherm.Maar er is een klein probleem.Als we denken aan de exploitatie van het boek, de acteur, voorwerpen, wie zijn dat?We kunnen dat hier twee verschillende actoren: beheer van boeken (zoals bibliothecarissen) en de presentatie van gegevens (zoals wij hopen dat het mechanisme voor de gebruikers van de inhoud van de inhoud - op het scherm, grafische gebruikersinterface tekst alleen de gebruikersinterface, misschien drukken).Dit zijn twee verschillende actoren,, gemengde logica die slecht zijn omdat het is gericht op één verantwoordelijkheid beginsel (SrP).Gezien de volgende code:,, de boeken (functie gettitle () {terugkeer "boeken";} functie getauthor () {terug "anoniem"; de functie van turnpage () {} de wijzer op de volgende blz.) ///////getcurrentpage (functie) {terugkeer "van de website"}} {functie; - de printer.PrintPage ($); uitvoering van de functie van klasse plaintextprinter printer {}.PrintPage ($) {'}} {functie, blz.; uitvoering van klasse htmlprinter printer.PrintPage ($) (ECHO "< die style=" bladzijde ">".Dollar. "< /div > ";}}, zelfs als dit is het belangrijkste voorbeeld toont aan hoe de vertegenwoordiging en isolement van de logica en de eerbiediging van de in het ontwerp van SrP, onze flexibiliteit biedt grote voordelen.,,," redden "zelf, een soortgelijk geval, het voorwerp van de Top is een doel van het herstel, kunnen redden, boeken, zelf. Gettitle {functie () {terugkeer" boeken ";} functie getauthor () {terug" anoniem "; de functie van turnpage () {} de wijzer op de volgende blz.) ///////getcurrentpage (functie) {terugkeer" van de website "; de functie van SAVE (}) {% naam =" /document /".De dollar - > gettitle (").•.De dollar - > getauthor (); file_put_contents ($dossier bijgehouden ($));}}, kunnen we weer een paar acteurs bepalen, als systeem voor het beheer van de bibliotheek en de duurzaamheid.Elke keer als we willen veranderen aan, we moeten de klasse.Elke keer als we willen veranderen hoe we van een pagina 's in het kader van een wijziging van deze categorie, we moeten.Is er hier een paar van de veranderingen in de schacht.,, boeken gettitle () {{functie terug te keren naar "het grote boek";} functie getauthor () {terugkeer "anoniem"; de functie van turnpage () {} de wijzer op de volgende blz.) ///////getcurrentpage (functie) {terugkeer "van de website"}} klasse; simplefilepersistence {functie behouden (boeken, boeken) {% naam = "/document /".Ik boek > gettitle (").•.Ik boek > getauthor (); file_put_contents ($dossier bijgehouden (boeken);}},, naar een andere klas zal aanhoudende exploitatie van de verantwoordelijkheid duidelijk gescheiden is, zullen we de vrije uitwisseling van persistente benadering is niet van invloed op ons boek.Zoals de tenuitvoerlegging van databasepersistence, klasse, onbeduidend is, hebben we een boek in de logica van de operatie niet zal veranderen.,, een hoger niveau, in mijn vorige artikelen, ik kan het volgende worden vaak genoemd, een hoog niveau van gebouwen zien.,,,,,, als we een analyse van dit model. Je kan zien dat de eerbiediging van de beginselen van de gemeenschappelijke taken.Doel is het scheppen van de rechten in de fabriek en onze toepassing van het eerste punt van binnenkomst worden gescheiden, een acteur een verantwoordelijkheid.Ook in de bodem zorgen voor duurzaamheid.De verantwoordelijkheid van de afzonderlijke modules afzonderlijk.Tot slot, aan de linkerkant, als je wil dat we de presentatie of de levering van het mechanisme, in een jaar of een van de andere soorten van de vorm van de bu.SrP respecteren.Alles wat overblijft is het duidelijk maken dat we de logica en software te ontwikkelen, als we denken, we moeten de software schrijven, kunnen we veel verschillende aspecten van de analyse.Bijvoorbeeld, het effect van dezelfde klasse kunnen vertegenwoordigers van verscheidene verzoeken om een wijziging van de as.Deze verandering van de as van de verantwoordelijkheid is waarschijnlijk één van de aanwijzingen.Er is een grote kans, die van invloed zijn op de functionele eisen van dezelfde groep worden aangewezen, om een verandering van of in de eerste plaats, de belangrijkste waarde van software is makkelijk te veranderen.Ten tweede is de functionaliteit op aan zo veel mogelijk om tegemoet te komen aan de behoeften van de gebruikers.Echter, met het oog op de verwezenlijking van een hoge waarde van de tweede, een van de belangrijkste waarden verplicht is.Met het oog op het behoud van onze eerste van hoge waarde, we moeten een makkelijk te veranderen en zich aan te passen aan de nieuwe ontwerp, de functie, om ervoor te zorgen dat de eerbiediging van onze SrP., stap voor stap ook in de oorzaken, de hoge initiële waarde:, leiden tot een waarde van de tijd op het niveau van de gemiddelde waarde.,, om in de behoeften van de gebruikers, de gebruiker vraag betekent dat een acteur. Een acteur die nodig is en de veranderende behoeften van de vaststelling van deze actoren, de vraag verandert acteur, de definitie van onze verantwoordelijkheid.,,, dus we moeten: ontwerp,,, om te zoeken naar, om er zeker van te zijn dat de acteur. Diensten die de verantwoordelijkheden van de actoren, onze functie en klasse, groepen, elk slechts een verdeling van de verantwoordelijkheden,,, is niet duidelijk.Voorbeelden van boeken - functie, gettitle () {terugkeer "boeken";} functie getauthor () {terug "anoniem"; de functie van turnpage () {} de wijzer op de volgende blz.) ///////getcurrentpage (functie) {terugkeer "van de inhoud van de functie van de pagina 's";} () {///////getlocation terug de bibliotheek is de positie van de versterker /nummer, nummer van de kamer}}, dit ziet er heel redelijk.Hebben we geen methoden voor de behandeling van persistente, of de presentatie.We hebben onze, turnpage (), de functie en de methode voor het verstrekken van informatie over de verschillende in deze boeken.Maar misschien hebben we een probleem.Om uit te vinden, kunnen we de analyse van onze programma 's.De functie van getlocation (), kunnen alle,.,, de methoden voor het boek, logica.Dus ons standpunt moet vanuit een economisch perspectief.Als we het programma geschreven is door wie is het echte boek, geef ons een boek, dan kunnen we de schending van SrP.,, kan de reden, acteur die belangstelling voor gettitle () (), getauthor,,,, getlocation ().De klant kan ook toegang tot de toepassing, de keuze van een boek, een paar pagina 's, te weten het idee voor het boek, en bepalen of ze wil of niet.Dus acteur lezers zullen waarschijnlijk in alle methoden behalve geïnteresseerd, getlocations ().Een gewone klant niet over dit boek in de bibliotheek opslag plaatsen.Dit boek zal door de bibliotheek aan de klant.Dus, we hebben inderdaad in strijd is met SrP.,, boeken (functie gettitle () {terugkeer "boeken";} functie getauthor () {terug "anoniem"; de functie van turnpage () {} de wijzer op de volgende blz.) ///////getcurrentpage (functie) {terugkeer "van de website";}} - booklocator {functie (boek terug naar de bibliotheek boek) {////////namelijk het aantal en de plaats van het aantal kamers plat. Librarymap dollar - > findbookby ($boek > gettitle () boek, $> getauthor ()); de invoering van booklocator}},,,,, de beheerder wel geïnteresseerd in, booklocator,.De klant zal zijn geïnteresseerd in het boek.Natuurlijk zijn er een aantal methoden voor de uitvoering van booklocator,,.Het gebruik van de auteur en titel of een boek tegen, en tot het verkrijgen van informatie, het boek.Het is altijd afhankelijk van onze zaken.Wat belangrijk is, is dat als de bibliotheek wordt veranderd, de bibliothecaris moeten in een van de verschillende georganiseerde vinden in de bibliotheek boek, het boek, het object niet wordt beïnvloed.Op dezelfde manier als we besloten om een samengesteld overzicht voor de lezer in plaats van dat ze 's bekijken, dit niet van invloed is op de bibliothecaris bleek ook dat de boeken op de plank proces, maar zitten, als we de zaken is de afschaffing van de bibliothecaris en het creëren van de bibliotheek zelf helpen van diensten, en, we kunnen met inachtneming van de in het eerste voorbeeld, SrP is respect.Onze lezers is de bibliothecaris, ze moet naar z 'n boek vinden, en dan in het automatische systeem controleren.Dat is ook een mogelijkheid.Het is belangrijk om te onthouden dat dit een beetje, je moet altijd rekening worden gehouden met je zaken, de laatste gedachten, als we de code moet worden beschouwd als een afzonderlijke aansprakelijkheid.En modules zijn zeer getroffen, die tot een lagere en minder en minder en het ontwerp van de afhankelijkheid.Maar als een munt, het heeft twee kanten.Het is makkelijk te onthouden en we begonnen met het ontwerpen van SrP van toepassing.Het is gemakkelijk te herkennen als we willen of moeten de vele acteurs.Maar dit is gevaarlijk. - vanuit het oogpunt van de ontwerp -, van mening dat alle partijen van het begin.Gezien de buitensporige SrP gemakkelijk tot voortijdig te optimaliseren, in plaats van een beter ontwerp, dat kan leiden tot een spreiding van een soort of module van duidelijke verantwoordelijkheden kan moeilijk te begrijpen zijn.Dus, als je naar een klasse of module, en begon te veranderen om verschillende redenen, aarzel niet, dat de eerbiediging en de nodige stappen, maar niet te vroeg is omdat de exploitatie kan gemakkelijk bedriegen je.
Vaste: 1
Next Page:De inzet van een gebruik van toepassing