Search Results

Search found 3038 results on 122 pages for 'places'.

Page 21/122 | < Previous Page | 17 18 19 20 21 22 23 24 25 26 27 28  | Next Page >

  • Design advice for avoiding change in several classes

    - by Anders Svensson
    Hi, I'm trying to figure out how to design a small application more elegantly, and make it more resistant to change. Basically it is a sort of project price calculator, and the problem is that there are many parameters that can affect the pricing. I'm trying to avoid cluttering the code with a lot of if-clauses for each parameter, but still I have e.g. if-clauses in two places checking for the value of the size parameter. I have the Head First Design Patterns book, and have tried to find ideas there, but the closest I got was the decorator pattern, which has an example where starbuzz coffee sets prices depending first on condiments added, and then later in an exercise by adding a size parameter (Tall, Grande, Venti). But that didn't seem to help, because adding that parameter still seemed to add if-clause complexity in a lot of places (and this being an exercise they didn't explain that further). What I am trying to avoid is having to change several classes if a parameter were to change or a new parameter added, or at least change in as few places as possible (there's some fancy design principle word for this that I don't rememeber :-)). Here below is the code. Basically it calculates the price for a project that has the tasks "Writing" and "Analysis" with a size parameter and different pricing models. There will be other parameters coming in later too, like "How new is the product?" (New, 1-5 years old, 6-10 years old), etc. Any advice on the best design would be greatly appreciated, whether a "design pattern" or just good object oriented principles that would make it resistant to change (e.g. adding another size, or changing one of the size values, and only have to change in one place rather than in several if-clauses): public class Project { private readonly int _numberOfProducts; protected Size _size; public Task Analysis { get; set; } public Task Writing { get; set; } public Project(int numberOfProducts) { _numberOfProducts = numberOfProducts; _size = GetSize(); Analysis = new AnalysisTask(numberOfProducts, _size); Writing = new WritingTask(numberOfProducts, _size); } private Size GetSize() { if (_numberOfProducts <= 2) return Size.small; if (_numberOfProducts <= 8) return Size.medium; return Size.large; } public double GetPrice() { return Analysis.GetPrice() + Writing.GetPrice(); } } public abstract class Task { protected readonly int _numberOfProducts; protected Size _size; protected double _pricePerHour; protected Dictionary<Size, int> _hours; public abstract int TotalHours { get; } public double Price { get; set; } protected Task(int numberOfProducts, Size size) { _numberOfProducts = numberOfProducts; _size = size; } public double GetPrice() { return _pricePerHour * TotalHours; } } public class AnalysisTask : Task { public AnalysisTask(int numberOfProducts, Size size) : base(numberOfProducts, size) { _pricePerHour = 850; _hours = new Dictionary<Size, int>() { { Size.small, 56 }, { Size.medium, 104 }, { Size.large, 200 } }; } public override int TotalHours { get { return _hours[_size]; } } } public class WritingTask : Task { public WritingTask(int numberOfProducts, Size size) : base(numberOfProducts, size) { _pricePerHour = 650; _hours = new Dictionary<Size, int>() { { Size.small, 125 }, { Size.medium, 100 }, { Size.large, 60 } }; } public override int TotalHours { get { if (_size == Size.small) return _hours[_size] * _numberOfProducts; if (_size == Size.medium) return (_hours[Size.small] * 2) + (_hours[Size.medium] * (_numberOfProducts - 2)); return (_hours[Size.small] * 2) + (_hours[Size.medium] * (8 - 2)) + (_hours[Size.large] * (_numberOfProducts - 8)); } } } public enum Size { small, medium, large } public partial class Form1 : Form { public Form1() { InitializeComponent(); List<int> quantities = new List<int>(); for (int i = 0; i < 100; i++) { quantities.Add(i); } comboBoxNumberOfProducts.DataSource = quantities; } private void comboBoxNumberOfProducts_SelectedIndexChanged(object sender, EventArgs e) { Project project = new Project((int)comboBoxNumberOfProducts.SelectedItem); labelPrice.Text = project.GetPrice().ToString(); labelWriterHours.Text = project.Writing.TotalHours.ToString(); labelAnalysisHours.Text = project.Analysis.TotalHours.ToString(); } } At the end is a simple current calling code in the change event for a combobox that set size... (BTW, I don't like the fact that I have to use several dots to get to the TotalHours at the end here either, as far as I can recall, that violates the "principle of least knowledge" or "the law of demeter", so input on that would be appreciated too, but it's not the main point of the question) Regards, Anders

    Read the article

  • How to compare mp3, flac audio data in a file, ignoring header data (ID3 tag) etc.?

    - by Rob
    I've backed up some audio files up in 2 places and added ID3 tags into one backup but not the other, since time has passed my own memory has faded on whether the backups are actually the same, but now one has ID3 data and the other doesn't, basic binary compare will fail and inspection will be cumbersome. Is there a tool to compare just the audio data (not the header, ID3) in mp3s, flac files, and other files using header data such as ID3. started a thread on beyond compare here: http://www.scootersoftware.com/vbulletin/showthread.php?t=7413 would consider other comparison software that does this task

    Read the article

  • Wiki/CMS with synchronization?

    - by Clinton Blackmore
    We're looking into putting up a wiki or CMS for internal use by our IT department. One of the big things we want to use it for is disaster recovery procedures. Given that a disaster, such as a power or network outage, might render the wiki inaccessible, it seems sensible to to host the wiki in two places so that if one is inaccessible, we can fall back to the other. Are there any wikis or CMSes that synchronize (or an alternate way to achieve a similar end)?

    Read the article

  • Making Active Directory changes atomic

    - by Matt Simmons
    I've got a Windows 2003 Active Directory infrastructure, and there are times (such as when terminating an employee) that I want instantaneous propagation across both of my AD servers. Currently, I make the change in both places, which I suspect is unhealthy, but it's the only way I know to make sure that the account is disabled to every machine. Is there a better way? Do I have to wait for the normal propagation time for convergence, or is there a way to "force" it?

    Read the article

  • Where do you buy your Microsoft software licenses?

    - by slabo
    Hi, Our company needs to buy Microsoft software Licenses for our project soon and I there are so many places to buy I don't know what to trust. We need Windows Server 2008 standard, and Windows SQL 2008 Standard. We are in China but the prices here are ridiculous. We could buy from the US. I hope this is a good place to ask. Any help appreciated, thanks.

    Read the article

  • Linux distro structure

    - by A.Rashad
    It seems either I am not looking in the right places or documentation is scarce. Where to find an illustration of a typical Linux distro? Something to say that this is a kernel, these are the components, this is X11, GNOME, these are the components, etc. I have been deciphering documents assuming you know what all these things are, and it seems I am missing something.

    Read the article

  • How to connect to a remote IIS with INETMGR on WIndows 7

    - by Chris Marisic
    I can't seem to find any way to connect to a remote IIS instance with my local INETMGR on my Windows 7 machine. It shows my settings for my local IIS and everything I've tried from clicking various places on the connections panel, changing the address in the address bar and checking the various menubar menus none seem to offer connect to another machine.

    Read the article

  • PC Safari Dropdown Site List

    - by ikurtz
    please excuse me if this is too easy and i just havent looked in the right places. the issue is this: when i use safari, i havent found a drop down list like you have on IE addresbar. in IE you can dropdown this list and choose sites. in Safari i havent found such dropdown list. is it avaliable? how do i enable it? thanks.

    Read the article

  • Mount samba filesystem into RHEL 5.5

    - by Oscar Reyes
    How can I mount windows share file system into RHEL? I'm not a sysadmin, but I got this task assigned :( I've tried this solution mount -t smbfs -o username=samba,password=samba //Desktop/Public /mnt/public But the output is: mount: unknown filesystem type 'smbfs' How can I mount a windows share into RHEL 5? FWIW I've successfully created a link with the menu: Places>Connect to Server>Service Type:Windows Share Which creates a link in the desktop, but I would need to programatically save files in that machine, hence I need it mounted as filesystem. Thanks in advance

    Read the article

  • Methods of cooling with no more room in case?

    - by Wesley
    Hi all, I've got an HP DC7100 and an HP m8530f. The DC7100 is a small form factor desktop while the m8530f has a mATX board with lots of extra features like front I/O and HP Personal Media Drive bay. Both of these have very little space (especially the DC7100) and don't have any other places to mount fans. What other possible ways of cooling are there, if there isn't much space left inside the case? Thanks in advance.

    Read the article

  • How do you change topdir as a user in SSH?

    - by JM4
    I have read several places NEVER to build RPM's as the root user. As such, I defined a new user and have tried building out RPM structures there, however, using the rpmbuild --rebuild src.name.rpm returns an error which states the topdir cannot be accessed: Installing curl-7.20.1-1.src.rpm error: cannot write to %sourcedir /usr/src/redhat/SOURCES error: curl-7.20.1-1.src.rpm cannot be installed does anybody know how to make this change? I have a correct /src/ directory set up under the new user.

    Read the article

  • Changing file browser in Scientific Linux

    - by karolg
    I use Scientific Linux Release 6.1 (Carbon) with GNOME 2.28.2. When I double-click on a folder on the Desktop it is opened in "File Browser". When I open a folder via "Places" on the Main Menu Bar, the folder is opened in "File Manager". I dislike "File Manager" and I don't understand why there are two different programs (file managers) running depending on how I open a folder. How can I get rid of "File Manager"?

    Read the article

  • How to jump to a particular flag in a Unix manpage?

    - by dotancohen
    When reading a Unix manpage in the terminal, how can I jump easily to the description of a particular flag? For instance, I need to know the meaning of the -o flag for mount. I run man mount and want to jump to the place where -o is described. Currently, I search /-o however that option is mentioned in several places before the section that actually describes it, so I must jump around quite a bit. Thanks.

    Read the article

  • Apple IIe Software Disks

    - by Mike Grace
    I just got a working Apple IIe but I don't have any system or software disks. I did some searches on Google to look for sources for disks but haven't been able to find many resources that I could actually buy disks from. What are some good places to purchase disks for my Apple IIe? Are there some good groups on the web where others are using and restoring Apple IIes?

    Read the article

  • Any way to map WebDAV with SSL as network drive in Windows XP?

    - by Shadow
    I'm trying to map WebDAV with SSL as a network drive in Windows XP. (I've been at this for several hours) I can read the share just fine using a browser and with Network Places, but it refuses to mount as a network drive. I've tried it using the Windows explorer interface and net use. Net use with the \\server@ssl:443\webdav method gives System error 53. https://server/webdav gives error 67. Any help would be appreciated.

    Read the article

  • ubuntu connect to server -> permantely mount?

    - by myforwik
    I have a system with Ubuntu 9.10 installed. I can connect to remote windows shares by using the "connect to server" under "places" menu. I can't figure out where these mount in the file system. And how can I get this to mount automatically on startup? And I can't install smbfs or anything else. I need to use only what comes on the live CD, as there is no internet connection and no way to get in packages.

    Read the article

  • using ubuntu connect to server to mount windows share

    - by myforwik
    I have a system with Ubuntu 9.10 installed. I can connect to remote windows shares by using the "connect to server" under "places" menu. I can't figure out where these mount in the file system. Is it possible to mount it in the file system. And I can't install smbfs or anything else. I need to use only what comes on the live CD, as there is no internet connection and no way to get in packages.

    Read the article

< Previous Page | 17 18 19 20 21 22 23 24 25 26 27 28  | Next Page >